AWS SDK for C++

AWS SDK for C++ Version 1.11.887

Loading...
Searching...
No Matches
SchemaBuilder.h
1#pragma once
2
3#include <aws/core/utils/memory/AWSMemory.h>
4#include <smithy/Smithy_EXPORTS.h>
5#include <smithy/client/schema/Schema.h>
6
7#include <memory>
8
9namespace smithy {
10namespace schema {
11
12// Assembles a shape that carries members (structure, union, list, map). Move-only;
13// obtained from Schema::StructureBuilder and friends.
14class SMITHY_API SchemaBuilder final {
15 public:
18 SchemaBuilder& operator=(SchemaBuilder&&) noexcept;
19
20 SchemaBuilder& PutMember(const char* name, std::shared_ptr<const Schema> target, TraitList traits = {});
21 SchemaBuilder& PutMember(const char* name, SchemaBuilder& target, TraitList traits = {});
22
23 std::shared_ptr<const Schema> Build();
24
25 private:
26 friend class Schema;
27 class SchemaBuilderImpl;
28
30
32
33 SchemaBuilder(const SchemaBuilder&) = delete;
34 SchemaBuilder& operator=(const SchemaBuilder&) = delete;
35};
36
37} // namespace schema
38} // namespace smithy
std::shared_ptr< const Schema > Build()
SchemaBuilder(SchemaBuilder &&) noexcept
SchemaBuilder & PutMember(const char *name, SchemaBuilder &target, TraitList traits={})
std::unique_ptr< T, D > UniquePtr
Definition AWSMemory.h:255
std::initializer_list< TraitEntry > TraitList
Definition Schema.h:47