3#include <launchdarkly/attribute_reference.hpp>
4#include <launchdarkly/attributes.hpp>
5#include <launchdarkly/value.hpp>
10namespace launchdarkly {
21template <
class BuilderReturn,
class BuildType>
34 : builder_(builder), kind_(std::move(kind)), key_(std::move(key)) {
49 kind_(std::move(kind)),
50 key_(attributes.Key()),
51 name_(attributes.
Name()),
53 private_attributes_(attributes.PrivateAttributes()) {
55 values_[pair.first] = pair.second;
178 template <
typename IterType>
180 for (
auto iter : attributes) {
181 private_attributes_.insert(iter);
199 return builder_.Kind(kind, key);
210 return builder_.Kind(kind);
218 [[nodiscard]] BuildType
Build()
const {
return builder_.Build(); }
221 BuilderReturn& builder_;
228 void Key(std::string key) { key_ = std::move(key); }
230 Attributes BuildAttributes()
const;
232 AttributesBuilder&
Set(std::string name,
234 bool private_attribute);
240 bool anonymous_ =
false;
242 std::map<std::string, Value> values_;
243 AttributeReference::SetType private_attributes_;
Definition attribute_reference.hpp:34
Definition attributes_builder.hpp:22
AttributesBuilder(BuilderReturn &builder, std::string kind, Attributes const &attributes)
Definition attributes_builder.hpp:45
AttributesBuilder & Kind(std::string kind, std::string key)
Definition attributes_builder.hpp:198
AttributesBuilder(BuilderReturn &builder, std::string kind, std::string key)
Definition attributes_builder.hpp:33
AttributesBuilder & AddPrivateAttribute(AttributeReference ref)
BuildType Build() const
Definition attributes_builder.hpp:218
AttributesBuilder * Kind(std::string const &kind)
Definition attributes_builder.hpp:209
AttributesBuilder & AddPrivateAttributes(IterType attributes)
Definition attributes_builder.hpp:179
AttributesBuilder & Set(std::string name, Value value)
AttributesBuilder & Anonymous(bool anonymous)
AttributesBuilder & Name(std::string name)
AttributesBuilder(AttributesBuilder const &builder)=delete
AttributesBuilder & SetPrivate(std::string name, Value value)
Definition attributes.hpp:15
Value const & CustomAttributes() const
Definition attributes.cpp:17
Definition context_builder.hpp:62
Object const & AsObject() const
Definition value.cpp:121