// Copyright (c) ZeroC, Inc.

// slice2cpp version 3.8.1
// <auto-generated>Generated from Slice file 'BuiltinSequences.ice'.</auto-generated>
// clang-format off

#ifndef Ice_BuiltinSequences_h_
#define Ice_BuiltinSequences_h_

#include <Ice/PushDisableWarnings.h>
#include <Ice/Config.h>
#include <Ice/ObjectF.h>
#include <Ice/ProxyF.h>
#include <Ice/ValueF.h>
#include <cstdint>
#include <optional>
#include <string>
#include <vector>

#ifndef ICE_DISABLE_VERSION
#   if ICE_INT_VERSION / 100 != 308
#       error Ice version mismatch!
#   endif
#   if ICE_INT_VERSION % 100 >= 50
#       error Beta header file detected
#   endif
#   if ICE_INT_VERSION % 100 < 1
#       error Ice patch level mismatch!
#   endif
#endif

// NOLINTBEGIN(modernize-concat-nested-namespaces)

namespace Ice
{
    /// A sequence of bools.
    using BoolSeq = std::vector<bool>;

    /// A sequence of bytes.
    using ByteSeq = std::vector<std::byte>;

    /// A sequence of shorts.
    using ShortSeq = std::vector<std::int16_t>;

    /// A sequence of ints.
    using IntSeq = std::vector<std::int32_t>;

    /// A sequence of longs.
    using LongSeq = std::vector<std::int64_t>;

    /// A sequence of floats.
    using FloatSeq = std::vector<float>;

    /// A sequence of doubles.
    using DoubleSeq = std::vector<double>;

    /// A sequence of strings.
    using StringSeq = std::vector<std::string>;

    /// A sequence of class instances.
    using ObjectSeq [[deprecated("Define your own sequence instead and avoid using the term `object` to designate a class instance.")]] = std::vector<Ice::ValuePtr>;

    /// A sequence of object proxies.
    using ObjectProxySeq = std::vector<std::optional<Ice::ObjectPrx>>;
}

// NOLINTEND(modernize-concat-nested-namespaces)

#include <Ice/PopDisableWarnings.h>
#endif
