| | |
| | | template <typename T, typename = kj::EnableIf<kind<FromReader<T>>() == Kind::STRUCT>> |
| | | inline Reader(T&& value): Reader(toDynamic(value)) {} |
| | | |
| | | inline operator AnyStruct::Reader() const { return AnyStruct::Reader(reader); } |
| | | |
| | | inline MessageSize totalSize() const { return reader.totalSize().asPublic(); } |
| | | |
| | | template <typename T> |
| | |
| | | friend class Orphan<DynamicStruct>; |
| | | friend class Orphan<DynamicValue>; |
| | | friend class Orphan<AnyPointer>; |
| | | friend class AnyStruct::Reader; |
| | | }; |
| | | |
| | | class DynamicStruct::Builder { |
| | |
| | | |
| | | template <typename T, typename = kj::EnableIf<kind<FromBuilder<T>>() == Kind::STRUCT>> |
| | | inline Builder(T&& value): Builder(toDynamic(value)) {} |
| | | |
| | | inline operator AnyStruct::Reader() { return AnyStruct::Builder(builder); } |
| | | |
| | | inline MessageSize totalSize() const { return asReader().totalSize(); } |
| | | |
| | |
| | | friend class Orphan<DynamicStruct>; |
| | | friend class Orphan<DynamicValue>; |
| | | friend class Orphan<AnyPointer>; |
| | | friend class AnyStruct::Builder; |
| | | }; |
| | | |
| | | class DynamicStruct::Pipeline { |
| | |
| | | |
| | | template <typename T, typename = kj::EnableIf<kind<FromReader<T>>() == Kind::LIST>> |
| | | inline Reader(T&& value): Reader(toDynamic(value)) {} |
| | | |
| | | inline operator AnyList::Reader() const { return AnyList::Reader(reader); } |
| | | |
| | | template <typename T> |
| | | typename T::Reader as() const; |
| | |
| | | |
| | | template <typename T, typename = kj::EnableIf<kind<FromBuilder<T>>() == Kind::LIST>> |
| | | inline Builder(T&& value): Builder(toDynamic(value)) {} |
| | | |
| | | inline operator AnyList::Builder() { return AnyList::Builder(builder); } |
| | | |
| | | template <typename T> |
| | | typename T::Builder as(); |
| | |
| | | template <> |
| | | inline AnyStruct::Builder DynamicStruct::Builder::as<AnyStruct>() { |
| | | return AnyStruct::Builder(builder); |
| | | } |
| | | |
| | | template <> |
| | | inline DynamicStruct::Reader AnyStruct::Reader::as<DynamicStruct>(StructSchema schema) const { |
| | | return DynamicStruct::Reader(schema, _reader); |
| | | } |
| | | |
| | | template <> |
| | | inline DynamicStruct::Builder AnyStruct::Builder::as<DynamicStruct>(StructSchema schema) { |
| | | return DynamicStruct::Builder(schema, _builder); |
| | | } |
| | | |
| | | template <typename T> |