// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni

#pragma once

#include <cstdint>
#include <experimental/optional>
#include <string>
#include <utility>

namespace testsuite {

/** Record containing constants */
struct Constants final {

    /** bool_constant has documentation. */
    static bool const BOOL_CONSTANT;

    static int8_t const I8_CONSTANT;

    static int16_t const I16_CONSTANT;

    static int32_t const I32_CONSTANT;

    static int64_t const I64_CONSTANT;

    static float const F32_CONSTANT;

    /**
     * f64_constant has long documentation.
     * (Second line of multi-line documentation.
     *   Indented third line of multi-line documentation.)
     */
    static double const F64_CONSTANT;

    static std::string const STRING_CONSTANT;

    static std::experimental::optional<int32_t> const OPTIONAL_INTEGER_CONSTANT;

    static Constants const OBJECT_CONSTANT;
    int32_t some_integer;
    std::string some_string;

    Constants(int32_t some_integer_,
              std::string some_string_)
    : some_integer(std::move(some_integer_))
    , some_string(std::move(some_string_))
    {}
};

}  // namespace testsuite
