VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/any.h
@@ -461,8 +461,6 @@ inline Reader(T&& value) : _reader(_::PointerHelpers<FromReader<T>>::getInternalReader(kj::fwd<T>(value))) {} inline MessageSize totalSize() const { return _reader.totalSize().asPublic(); } kj::ArrayPtr<const byte> getDataSection() { return _reader.getDataSectionAsBlob(); } @@ -485,11 +483,6 @@ // T must be a struct type. return typename T::Reader(_reader); } template <typename T> ReaderFor<T> as(StructSchema schema) const; // T must be DynamicStruct. Defined in dynamic.h. private: _::StructReader _reader; @@ -536,11 +529,6 @@ // T must be a struct type. return typename T::Builder(_builder); } template <typename T> BuilderFor<T> as(StructSchema schema); // T must be DynamicStruct. Defined in dynamic.h. private: _::StructBuilder _builder; friend class Orphanage; VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/c++.capnp.h
@@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #if CAPNP_VERSION != 7000 #if CAPNP_VERSION != 6001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/common.h
@@ -41,8 +41,8 @@ namespace capnp { #define CAPNP_VERSION_MAJOR 0 #define CAPNP_VERSION_MINOR 7 #define CAPNP_VERSION_MICRO 0 #define CAPNP_VERSION_MINOR 6 #define CAPNP_VERSION_MICRO 1 #define CAPNP_VERSION \ (CAPNP_VERSION_MAJOR * 1000000 + CAPNP_VERSION_MINOR * 1000 + CAPNP_VERSION_MICRO) VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/compat/json.capnp.h
@@ -9,7 +9,7 @@ #include <capnp/capability.h> #endif // !CAPNP_LITE #if CAPNP_VERSION != 7000 #if CAPNP_VERSION != 6001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/compat/json.h
@@ -193,20 +193,6 @@ void addFieldHandler(StructSchema::Field field, Handler<T>& handler); // Matches only the specific field. T can be a dynamic type. T must match the field's type. // --------------------------------------------------------------------------- // Hack to support string literal parameters template <size_t size, typename... Params> auto decode(const char (&input)[size], Params&&... params) const -> decltype(decode(kj::arrayPtr(input, size), kj::fwd<Params>(params)...)) { return decode(kj::arrayPtr(input, size - 1), kj::fwd<Params>(params)...); } template <size_t size, typename... Params> auto decodeRaw(const char (&input)[size], Params&&... params) const -> decltype(decodeRaw(kj::arrayPtr(input, size), kj::fwd<Params>(params)...)) { return decodeRaw(kj::arrayPtr(input, size - 1), kj::fwd<Params>(params)...); } private: class HandlerBase; struct Impl; @@ -224,14 +210,10 @@ // ======================================================================================= // inline implementation details template <bool isDynamic> struct EncodeImpl; template <typename T> kj::String JsonCodec::encode(T&& value) { Type type = Type::from(value); typedef FromAny<kj::Decay<T>> Base; return encode(DynamicValue::Reader(ReaderFor<Base>(kj::fwd<T>(value))), type); return encode(DynamicValue::Reader(ReaderFor<Base>(kj::fwd<T>(value))), Type::from<Base>()); } template <typename T> VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/dynamic.h
@@ -179,8 +179,6 @@ 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> @@ -236,7 +234,6 @@ friend class Orphan<DynamicStruct>; friend class Orphan<DynamicValue>; friend class Orphan<AnyPointer>; friend class AnyStruct::Reader; }; class DynamicStruct::Builder { @@ -248,8 +245,6 @@ 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(); } @@ -328,7 +323,6 @@ friend class Orphan<DynamicStruct>; friend class Orphan<DynamicValue>; friend class Orphan<AnyPointer>; friend class AnyStruct::Builder; }; class DynamicStruct::Pipeline { @@ -369,8 +363,6 @@ 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; @@ -414,8 +406,6 @@ 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(); @@ -1524,16 +1514,6 @@ 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> VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/persistent.capnp.h
@@ -9,7 +9,7 @@ #include <capnp/capability.h> #endif // !CAPNP_LITE #if CAPNP_VERSION != 7000 #if CAPNP_VERSION != 6001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/rpc-twoparty.capnp.h
@@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #if CAPNP_VERSION != 7000 #if CAPNP_VERSION != 6001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/rpc.capnp
@@ -233,11 +233,11 @@ abort @1 :Exception; # Sent when a connection is being aborted due to an unrecoverable error. This could be e.g. # because the sender received an invalid or nonsensical message or because the sender had an # internal error. The sender will shut down the outgoing half of the connection after `abort` # and will completely close the connection shortly thereafter (it's up to the sender how much # of a time buffer they want to offer for the client to receive the `abort` before the # connection is reset). # because the sender received an invalid or nonsensical message (`isCallersFault` is true) or # because the sender had an internal error (`isCallersFault` is false). The sender will shut # down the outgoing half of the connection after `abort` and will completely close the # connection shortly thereafter (it's up to the sender how much of a time buffer they want to # offer for the client to receive the `abort` before the connection is reset). # Level 0 features ----------------------------------------------- @@ -446,22 +446,23 @@ # in the calls so that the results need not pass back through Vat B. # # For example: # - Alice, in Vat A, calls foo() on Bob in Vat B. # - Alice, in Vat A, call foo() on Bob in Vat B. # - Alice makes a pipelined call bar() on the promise returned by foo(). # - Later on, Bob resolves the promise from foo() to point at Carol, who lives in Vat A (next # to Alice). # - Vat B dutifully forwards the bar() call to Carol. Let us call this forwarded call bar'(). # Notice that bar() and bar'() are travelling in opposite directions on the same network # link. # - The `Call` for bar'() has `sendResultsTo` set to `yourself`. # - Vat B sends a `Return` for bar() with `takeFromOtherQuestion` set in place of the results, # with the value set to the question ID of bar'(). Vat B does not wait for bar'() to return, # as doing so would introduce unnecessary round trip latency. # - The `Call` for bar'() has `sendResultsTo` set to `yourself`, with the value being the # question ID originally assigned to the bar() call. # - Vat A receives bar'() and delivers it to Carol. # - When bar'() returns, Vat A sends a `Return` for bar'() to Vat B, with `resultsSentElsewhere` # set in place of results. # - Vat A sends a `Finish` for the bar() call to Vat B. # - Vat B receives the `Finish` for bar() and sends a `Finish` for bar'(). # - When bar'() returns, Vat A immediately takes the results and returns them from bar(). # - Meanwhile, Vat A sends a `Return` for bar'() to Vat B, with `resultsSentElsewhere` set in # place of results. # - Vat A sends a `Finish` for that call to Vat B. # - Vat B receives the `Return` for bar'() and sends a `Return` for bar(), with # `receivedFromYourself` set in place of the results. # - Vat B receives the `Finish` for bar() and sends a `Finish` to bar'(). thirdParty @7 :RecipientId; # **(level 3)** @@ -517,7 +518,7 @@ takeFromOtherQuestion @6 :QuestionId; # The sender has also sent (before this message) a `Call` with the given question ID and with # `sendResultsTo.yourself` set, and the results of that other call should be used as the # results here. `takeFromOtherQuestion` can only used once per question. # results here. acceptFromThirdParty @7 :ThirdPartyCapId; # **(level 3)** @@ -780,7 +781,7 @@ # Message type sent to pick up a capability hosted by the receiving vat and provided by a third # party. The third party previously designated the capability using `Provide`. # # This message is also used to pick up a redirected return -- see `Return.acceptFromThirdParty`. # This message is also used to pick up a redirected return -- see `Return.redirect`. questionId @0 :QuestionId; # A new question ID identifying this accept message, which will eventually receive a Return @@ -950,8 +951,8 @@ # Hopefully this is unusual. senderHosted @1 :ExportId; # The ID of a capability in the sender's export table (receiver's import table). It may be a # newly allocated table entry, or an existing entry (increments the reference count). # A capability newly exported by the sender. This is the ID of the new capability in the # sender's export table (receiver's import table). senderPromise @2 :ExportId; # A promise that the sender will resolve later. The sender will send exactly one Resolve @@ -1233,8 +1234,8 @@ # The information that must be sent in an `Accept` message to identify the object being accepted. # # In a network where each vat has a public/private key pair, this could simply be the public key # fingerprint of the provider vat along with a nonce matching the one in the `RecipientId` used # in the `Provide` message sent from that provider. # fingerprint of the provider vat along with the question ID used in the `Provide` message sent from # that provider. using RecipientId = AnyPointer; # **(level 3)** @@ -1243,7 +1244,8 @@ # capability. # # In a network where each vat has a public/private key pair, this could simply be the public key # fingerprint of the recipient along with a nonce matching the one in the `ProvisionId`. # fingerprint of the recipient. (CapTP also calls for a nonce to identify the object. In our # case, the `Provide` message's `questionId` can serve as the nonce.) using ThirdPartyCapId = AnyPointer; # **(level 3)** @@ -1252,8 +1254,8 @@ # # In a network where each vat has a public/private key pair, this could be a combination of the # third party's public key fingerprint, hints on how to connect to the third party (e.g. an IP # address), and the nonce used in the corresponding `Provide` message's `RecipientId` as sent # to that third party (used to identify which capability to pick up). # address), and the question ID used in the corresponding `Provide` message sent to that third party # (used to identify which capability to pick up). using JoinKeyPart = AnyPointer; # **(level 4)** VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/rpc.capnp.h
@@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #if CAPNP_VERSION != 7000 #if CAPNP_VERSION != 6001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/schema-parser.h
@@ -77,11 +77,6 @@ // normally. In this case, the result is a best-effort attempt to compile the schema, but it // may be invalid or corrupt, and using it for anything may cause exceptions to be thrown. kj::Maybe<schema::Node::SourceInfo::Reader> getSourceInfo(Schema schema) const; // Look up source info (e.g. doc comments) for the given schema, which must have come from this // SchemaParser. Note that this will also work for implicit group and param types that don't have // a type name hence don't have a `ParsedSchema`. template <typename T> inline void loadCompiledTypeAndDependencies() { // See SchemaLoader::loadCompiledTypeAndDependencies(). @@ -114,9 +109,6 @@ ParsedSchema getNested(kj::StringPtr name) const; // Gets the nested node with the given name, or throws an exception if there is no such nested // declaration. schema::Node::SourceInfo::Reader getSourceInfo() const; // Get the source info for this schema. private: inline ParsedSchema(Schema inner, const SchemaParser& parser): Schema(inner), parser(&parser) {} VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/schema.capnp
@@ -169,33 +169,6 @@ targetsAnnotation @30 :Bool; } } struct SourceInfo { # Additional information about a node which is not needed at runtime, but may be useful for # documentation or debugging purposes. This is kept in a separate struct to make sure it # doesn't accidentally get included in contexts where it is not needed. The # `CodeGeneratorRequest` includes this information in a separate array. id @0 :Id; # ID of the Node which this info describes. docComment @1 :Text; # The top-level doc comment for the Node. members @2 :List(Member); # Information about each member -- i.e. fields (for structs), enumerants (for enums), or # methods (for interfaces). # # This list is the same length and order as the corresponding list in the Node, i.e. # Node.struct.fields, Node.enum.enumerants, or Node.interface.methods. struct Member { docComment @0 :Text; # Doc comment on the member. } # TODO(someday): Record location of the declaration in the original source code. } } struct Field { @@ -494,10 +467,6 @@ nodes @0 :List(Node); # All nodes parsed by the compiler, including for the files on the command line and their # imports. sourceInfo @3 :List(Node.SourceInfo); # Information about the original source code for each node, where available. This array may be # omitted or may be missing some nodes if no info is available for them. requestedFiles @1 :List(RequestedFile); # Files which were listed on the command line. VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/schema.capnp.h
@@ -6,7 +6,7 @@ #include <capnp/generated-header-support.h> #if CAPNP_VERSION != 7000 #if CAPNP_VERSION != 6001 #error "Version mismatch between generated code and library headers. You must use the same version of the Cap'n Proto compiler and library." #endif @@ -17,8 +17,6 @@ CAPNP_DECLARE_SCHEMA(e682ab4cf923a417); CAPNP_DECLARE_SCHEMA(b9521bccf10fa3b1); CAPNP_DECLARE_SCHEMA(debf55bbfa0fc242); CAPNP_DECLARE_SCHEMA(f38e1de3041357ae); CAPNP_DECLARE_SCHEMA(c2ba9038898e1fa2); CAPNP_DECLARE_SCHEMA(9ea0b19b37fb4435); CAPNP_DECLARE_SCHEMA(b54ab3364333f598); CAPNP_DECLARE_SCHEMA(e82753cff0c2218f); @@ -85,7 +83,6 @@ }; struct Parameter; struct NestedNode; struct SourceInfo; struct Struct; struct Enum; struct Interface; @@ -124,37 +121,6 @@ struct _capnpPrivate { CAPNP_DECLARE_STRUCT_HEADER(debf55bbfa0fc242, 1, 1) #if !CAPNP_LITE static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } #endif // !CAPNP_LITE }; }; struct Node::SourceInfo { SourceInfo() = delete; class Reader; class Builder; class Pipeline; struct Member; struct _capnpPrivate { CAPNP_DECLARE_STRUCT_HEADER(f38e1de3041357ae, 1, 2) #if !CAPNP_LITE static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } #endif // !CAPNP_LITE }; }; struct Node::SourceInfo::Member { Member() = delete; class Reader; class Builder; class Pipeline; struct _capnpPrivate { CAPNP_DECLARE_STRUCT_HEADER(c2ba9038898e1fa2, 0, 1) #if !CAPNP_LITE static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } #endif // !CAPNP_LITE @@ -660,7 +626,7 @@ struct RequestedFile; struct _capnpPrivate { CAPNP_DECLARE_STRUCT_HEADER(bfc546f6210ad7ce, 0, 4) CAPNP_DECLARE_STRUCT_HEADER(bfc546f6210ad7ce, 0, 3) #if !CAPNP_LITE static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; } #endif // !CAPNP_LITE @@ -1029,183 +995,6 @@ class Node::NestedNode::Pipeline { public: typedef NestedNode Pipelines; inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) : _typeless(kj::mv(typeless)) {} private: ::capnp::AnyPointer::Pipeline _typeless; friend class ::capnp::PipelineHook; template <typename, ::capnp::Kind> friend struct ::capnp::ToDynamic_; }; #endif // !CAPNP_LITE class Node::SourceInfo::Reader { public: typedef SourceInfo Reads; Reader() = default; inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} inline ::capnp::MessageSize totalSize() const { return _reader.totalSize().asPublic(); } #if !CAPNP_LITE inline ::kj::StringTree toString() const { return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); } #endif // !CAPNP_LITE inline ::uint64_t getId() const; inline bool hasDocComment() const; inline ::capnp::Text::Reader getDocComment() const; inline bool hasMembers() const; inline ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>::Reader getMembers() const; private: ::capnp::_::StructReader _reader; template <typename, ::capnp::Kind> friend struct ::capnp::ToDynamic_; template <typename, ::capnp::Kind> friend struct ::capnp::_::PointerHelpers; template <typename, ::capnp::Kind> friend struct ::capnp::List; friend class ::capnp::MessageBuilder; friend class ::capnp::Orphanage; }; class Node::SourceInfo::Builder { public: typedef SourceInfo Builds; Builder() = delete; // Deleted to discourage incorrect usage. // You can explicitly initialize to nullptr instead. inline Builder(decltype(nullptr)) {} inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} inline operator Reader() const { return Reader(_builder.asReader()); } inline Reader asReader() const { return *this; } inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } #if !CAPNP_LITE inline ::kj::StringTree toString() const { return asReader().toString(); } #endif // !CAPNP_LITE inline ::uint64_t getId(); inline void setId( ::uint64_t value); inline bool hasDocComment(); inline ::capnp::Text::Builder getDocComment(); inline void setDocComment( ::capnp::Text::Reader value); inline ::capnp::Text::Builder initDocComment(unsigned int size); inline void adoptDocComment(::capnp::Orphan< ::capnp::Text>&& value); inline ::capnp::Orphan< ::capnp::Text> disownDocComment(); inline bool hasMembers(); inline ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>::Builder getMembers(); inline void setMembers( ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>::Reader value); inline ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>::Builder initMembers(unsigned int size); inline void adoptMembers(::capnp::Orphan< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>>&& value); inline ::capnp::Orphan< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>> disownMembers(); private: ::capnp::_::StructBuilder _builder; template <typename, ::capnp::Kind> friend struct ::capnp::ToDynamic_; friend class ::capnp::Orphanage; template <typename, ::capnp::Kind> friend struct ::capnp::_::PointerHelpers; }; #if !CAPNP_LITE class Node::SourceInfo::Pipeline { public: typedef SourceInfo Pipelines; inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) : _typeless(kj::mv(typeless)) {} private: ::capnp::AnyPointer::Pipeline _typeless; friend class ::capnp::PipelineHook; template <typename, ::capnp::Kind> friend struct ::capnp::ToDynamic_; }; #endif // !CAPNP_LITE class Node::SourceInfo::Member::Reader { public: typedef Member Reads; Reader() = default; inline explicit Reader(::capnp::_::StructReader base): _reader(base) {} inline ::capnp::MessageSize totalSize() const { return _reader.totalSize().asPublic(); } #if !CAPNP_LITE inline ::kj::StringTree toString() const { return ::capnp::_::structString(_reader, *_capnpPrivate::brand()); } #endif // !CAPNP_LITE inline bool hasDocComment() const; inline ::capnp::Text::Reader getDocComment() const; private: ::capnp::_::StructReader _reader; template <typename, ::capnp::Kind> friend struct ::capnp::ToDynamic_; template <typename, ::capnp::Kind> friend struct ::capnp::_::PointerHelpers; template <typename, ::capnp::Kind> friend struct ::capnp::List; friend class ::capnp::MessageBuilder; friend class ::capnp::Orphanage; }; class Node::SourceInfo::Member::Builder { public: typedef Member Builds; Builder() = delete; // Deleted to discourage incorrect usage. // You can explicitly initialize to nullptr instead. inline Builder(decltype(nullptr)) {} inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {} inline operator Reader() const { return Reader(_builder.asReader()); } inline Reader asReader() const { return *this; } inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); } #if !CAPNP_LITE inline ::kj::StringTree toString() const { return asReader().toString(); } #endif // !CAPNP_LITE inline bool hasDocComment(); inline ::capnp::Text::Builder getDocComment(); inline void setDocComment( ::capnp::Text::Reader value); inline ::capnp::Text::Builder initDocComment(unsigned int size); inline void adoptDocComment(::capnp::Orphan< ::capnp::Text>&& value); inline ::capnp::Orphan< ::capnp::Text> disownDocComment(); private: ::capnp::_::StructBuilder _builder; template <typename, ::capnp::Kind> friend struct ::capnp::ToDynamic_; friend class ::capnp::Orphanage; template <typename, ::capnp::Kind> friend struct ::capnp::_::PointerHelpers; }; #if !CAPNP_LITE class Node::SourceInfo::Member::Pipeline { public: typedef Member Pipelines; inline Pipeline(decltype(nullptr)): _typeless(nullptr) {} inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless) @@ -4050,9 +3839,6 @@ inline bool hasCapnpVersion() const; inline ::capnp::schema::CapnpVersion::Reader getCapnpVersion() const; inline bool hasSourceInfo() const; inline ::capnp::List< ::capnp::schema::Node::SourceInfo>::Reader getSourceInfo() const; private: ::capnp::_::StructReader _reader; template <typename, ::capnp::Kind> @@ -4101,13 +3887,6 @@ inline ::capnp::schema::CapnpVersion::Builder initCapnpVersion(); inline void adoptCapnpVersion(::capnp::Orphan< ::capnp::schema::CapnpVersion>&& value); inline ::capnp::Orphan< ::capnp::schema::CapnpVersion> disownCapnpVersion(); inline bool hasSourceInfo(); inline ::capnp::List< ::capnp::schema::Node::SourceInfo>::Builder getSourceInfo(); inline void setSourceInfo( ::capnp::List< ::capnp::schema::Node::SourceInfo>::Reader value); inline ::capnp::List< ::capnp::schema::Node::SourceInfo>::Builder initSourceInfo(unsigned int size); inline void adoptSourceInfo(::capnp::Orphan< ::capnp::List< ::capnp::schema::Node::SourceInfo>>&& value); inline ::capnp::Orphan< ::capnp::List< ::capnp::schema::Node::SourceInfo>> disownSourceInfo(); private: ::capnp::_::StructBuilder _builder; @@ -4757,122 +4536,6 @@ inline void Node::NestedNode::Builder::setId( ::uint64_t value) { _builder.setDataField< ::uint64_t>( ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); } inline ::uint64_t Node::SourceInfo::Reader::getId() const { return _reader.getDataField< ::uint64_t>( ::capnp::bounded<0>() * ::capnp::ELEMENTS); } inline ::uint64_t Node::SourceInfo::Builder::getId() { return _builder.getDataField< ::uint64_t>( ::capnp::bounded<0>() * ::capnp::ELEMENTS); } inline void Node::SourceInfo::Builder::setId( ::uint64_t value) { _builder.setDataField< ::uint64_t>( ::capnp::bounded<0>() * ::capnp::ELEMENTS, value); } inline bool Node::SourceInfo::Reader::hasDocComment() const { return !_reader.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); } inline bool Node::SourceInfo::Builder::hasDocComment() { return !_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); } inline ::capnp::Text::Reader Node::SourceInfo::Reader::getDocComment() const { return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS)); } inline ::capnp::Text::Builder Node::SourceInfo::Builder::getDocComment() { return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS)); } inline void Node::SourceInfo::Builder::setDocComment( ::capnp::Text::Reader value) { ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS), value); } inline ::capnp::Text::Builder Node::SourceInfo::Builder::initDocComment(unsigned int size) { return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS), size); } inline void Node::SourceInfo::Builder::adoptDocComment( ::capnp::Orphan< ::capnp::Text>&& value) { ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); } inline ::capnp::Orphan< ::capnp::Text> Node::SourceInfo::Builder::disownDocComment() { return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS)); } inline bool Node::SourceInfo::Reader::hasMembers() const { return !_reader.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); } inline bool Node::SourceInfo::Builder::hasMembers() { return !_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS).isNull(); } inline ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>::Reader Node::SourceInfo::Reader::getMembers() const { return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>>::get(_reader.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS)); } inline ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>::Builder Node::SourceInfo::Builder::getMembers() { return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>>::get(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS)); } inline void Node::SourceInfo::Builder::setMembers( ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>::Reader value) { ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>>::set(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS), value); } inline ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>::Builder Node::SourceInfo::Builder::initMembers(unsigned int size) { return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>>::init(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS), size); } inline void Node::SourceInfo::Builder::adoptMembers( ::capnp::Orphan< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>>&& value) { ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>>::adopt(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value)); } inline ::capnp::Orphan< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>> Node::SourceInfo::Builder::disownMembers() { return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo::Member>>::disown(_builder.getPointerField( ::capnp::bounded<1>() * ::capnp::POINTERS)); } inline bool Node::SourceInfo::Member::Reader::hasDocComment() const { return !_reader.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); } inline bool Node::SourceInfo::Member::Builder::hasDocComment() { return !_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS).isNull(); } inline ::capnp::Text::Reader Node::SourceInfo::Member::Reader::getDocComment() const { return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS)); } inline ::capnp::Text::Builder Node::SourceInfo::Member::Builder::getDocComment() { return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS)); } inline void Node::SourceInfo::Member::Builder::setDocComment( ::capnp::Text::Reader value) { ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS), value); } inline ::capnp::Text::Builder Node::SourceInfo::Member::Builder::initDocComment(unsigned int size) { return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS), size); } inline void Node::SourceInfo::Member::Builder::adoptDocComment( ::capnp::Orphan< ::capnp::Text>&& value) { ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value)); } inline ::capnp::Orphan< ::capnp::Text> Node::SourceInfo::Member::Builder::disownDocComment() { return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField( ::capnp::bounded<0>() * ::capnp::POINTERS)); } inline ::uint16_t Node::Struct::Reader::getDataWordCount() const { @@ -8060,40 +7723,6 @@ inline ::capnp::Orphan< ::capnp::schema::CapnpVersion> CodeGeneratorRequest::Builder::disownCapnpVersion() { return ::capnp::_::PointerHelpers< ::capnp::schema::CapnpVersion>::disown(_builder.getPointerField( ::capnp::bounded<2>() * ::capnp::POINTERS)); } inline bool CodeGeneratorRequest::Reader::hasSourceInfo() const { return !_reader.getPointerField( ::capnp::bounded<3>() * ::capnp::POINTERS).isNull(); } inline bool CodeGeneratorRequest::Builder::hasSourceInfo() { return !_builder.getPointerField( ::capnp::bounded<3>() * ::capnp::POINTERS).isNull(); } inline ::capnp::List< ::capnp::schema::Node::SourceInfo>::Reader CodeGeneratorRequest::Reader::getSourceInfo() const { return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo>>::get(_reader.getPointerField( ::capnp::bounded<3>() * ::capnp::POINTERS)); } inline ::capnp::List< ::capnp::schema::Node::SourceInfo>::Builder CodeGeneratorRequest::Builder::getSourceInfo() { return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo>>::get(_builder.getPointerField( ::capnp::bounded<3>() * ::capnp::POINTERS)); } inline void CodeGeneratorRequest::Builder::setSourceInfo( ::capnp::List< ::capnp::schema::Node::SourceInfo>::Reader value) { ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo>>::set(_builder.getPointerField( ::capnp::bounded<3>() * ::capnp::POINTERS), value); } inline ::capnp::List< ::capnp::schema::Node::SourceInfo>::Builder CodeGeneratorRequest::Builder::initSourceInfo(unsigned int size) { return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo>>::init(_builder.getPointerField( ::capnp::bounded<3>() * ::capnp::POINTERS), size); } inline void CodeGeneratorRequest::Builder::adoptSourceInfo( ::capnp::Orphan< ::capnp::List< ::capnp::schema::Node::SourceInfo>>&& value) { ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo>>::adopt(_builder.getPointerField( ::capnp::bounded<3>() * ::capnp::POINTERS), kj::mv(value)); } inline ::capnp::Orphan< ::capnp::List< ::capnp::schema::Node::SourceInfo>> CodeGeneratorRequest::Builder::disownSourceInfo() { return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::schema::Node::SourceInfo>>::disown(_builder.getPointerField( ::capnp::bounded<3>() * ::capnp::POINTERS)); } inline ::uint64_t CodeGeneratorRequest::RequestedFile::Reader::getId() const { VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/schema.h
@@ -599,8 +599,6 @@ template <typename T> inline static Type from(); template <typename T> inline static Type from(T&& value); inline schema::Type::Which which() const; @@ -681,9 +679,6 @@ } void requireUsableAs(Type expected) const; template <typename T, Kind k> struct FromValueImpl; friend class ListSchema; // only for requireUsableAs() }; @@ -903,29 +898,6 @@ template <typename T> inline Type Type::from() { return Type(Schema::from<T>()); } template <typename T, Kind k> struct Type::FromValueImpl { template <typename U> static inline Type type(U&& value) { return Type::from<T>(); } }; template <typename T> struct Type::FromValueImpl<T, Kind::OTHER> { template <typename U> static inline Type type(U&& value) { // All dynamic types have getSchema(). return value.getSchema(); } }; template <typename T> inline Type Type::from(T&& value) { typedef FromAny<kj::Decay<T>> Base; return Type::FromValueImpl<Base, kind<Base>()>::type(kj::fwd<T>(value)); } inline bool Type::isVoid () const { return baseType == schema::Type::VOID && listDepth == 0; } inline bool Type::isBool () const { return baseType == schema::Type::BOOL && listDepth == 0; } VisitFace/RtspNativeCodec/app/libs/capnproto/include/kj/array.h
@@ -177,11 +177,6 @@ inline T& front() { return *ptr; } inline T& back() { return *(ptr + size_ - 1); } template <typename U> inline bool operator==(const U& other) const { return asPtr() == other; } template <typename U> inline bool operator!=(const U& other) const { return asPtr() != other; } inline ArrayPtr<T> slice(size_t start, size_t end) { KJ_IREQUIRE(start <= end && end <= size_, "Out-of-bounds Array::slice()."); return ArrayPtr<T>(ptr + start, end - start); @@ -254,8 +249,6 @@ template <typename U> friend class Array; template <typename U> friend class ArrayBuilder; }; static_assert(!canMemcpy<Array<char>>(), "canMemcpy<>() is broken"); @@ -327,13 +320,6 @@ other.ptr = nullptr; other.pos = nullptr; other.endPtr = nullptr; } ArrayBuilder(Array<T>&& other) : ptr(other.ptr), pos(other.ptr + other.size_), endPtr(pos), disposer(other.disposer) { // Create an already-full ArrayBuilder from an Array of the same type. This constructor // primarily exists to enable Vector<T> to be constructed from Array<T>. other.ptr = nullptr; other.size_ = 0; } KJ_DISALLOW_COPY(ArrayBuilder); inline ~ArrayBuilder() noexcept(false) { dispose(); } @@ -821,15 +807,6 @@ inline Array<T> heapArray(std::initializer_list<T> init) { return heapArray<T>(init.begin(), init.end()); } #if __cplusplus > 201402L template <typename T, typename... Params> inline Array<Decay<T>> arr(T&& param1, Params&&... params) { ArrayBuilder<Decay<T>> builder = heapArrayBuilder<Decay<T>>(sizeof...(params) + 1); (builder.add(kj::fwd<T>(param1)), ... , builder.add(kj::fwd<Params>(params))); return builder.finish(); } #endif } // namespace kj VisitFace/RtspNativeCodec/app/libs/capnproto/include/kj/common.h
@@ -455,10 +455,6 @@ // KJ_DECLTYPE_REF(i) i3(i); // i3 has type int&. // KJ_DECLTYPE_REF(kj::mv(i)) i4(kj::mv(i)); // i4 has type int. template <typename T, typename U> struct IsSameType_ { static constexpr bool value = false; }; template <typename T> struct IsSameType_<T, T> { static constexpr bool value = true; }; template <typename T, typename U> constexpr bool isSameType() { return IsSameType_<T, U>::value; } template <typename T> struct CanConvert_ { static int sfinae(T); @@ -915,6 +911,7 @@ return value; } private: // internal interface used by friends only inline NullableValue() noexcept: isSet(false) {} inline NullableValue(T&& t) noexcept(noexcept(T(instance<T&&>()))) : isSet(true) { @@ -1092,32 +1089,18 @@ inline bool operator==(decltype(nullptr)) const { return ptr == nullptr; } inline bool operator!=(decltype(nullptr)) const { return ptr != nullptr; } T& orDefault(T& defaultValue) & { T& orDefault(T& defaultValue) { if (ptr == nullptr) { return defaultValue; } else { return *ptr; } } const T& orDefault(const T& defaultValue) const & { const T& orDefault(const T& defaultValue) const { if (ptr == nullptr) { return defaultValue; } else { return *ptr; } } T&& orDefault(T&& defaultValue) && { if (ptr == nullptr) { return kj::mv(defaultValue); } else { return kj::mv(*ptr); } } const T&& orDefault(const T&& defaultValue) const && { if (ptr == nullptr) { return kj::mv(defaultValue); } else { return kj::mv(*ptr); } } @@ -1180,7 +1163,7 @@ template <typename U> inline Maybe(Maybe<U&>& other) noexcept: ptr(other.ptr) {} template <typename U> inline Maybe(const Maybe<U&>& other) noexcept: ptr(const_cast<const U*>(other.ptr)) {} inline Maybe(const Maybe<const U&>& other) noexcept: ptr(other.ptr) {} inline Maybe(decltype(nullptr)) noexcept: ptr(nullptr) {} inline Maybe& operator=(T& other) noexcept { ptr = &other; return *this; } @@ -1247,31 +1230,8 @@ : ptr(init.begin()), size_(init.size()) {} template <size_t size> inline constexpr ArrayPtr(T (&native)[size]): ptr(native), size_(size) { // Construct an ArrayPtr from a native C-style array. // // We disable this constructor for const char arrays because otherwise you would be able to // implicitly convert a character literal to ArrayPtr<const char>, which sounds really great, // except that the NUL terminator would be included, which probably isn't what you intended. // // TODO(someday): Maybe we should support character literals but explicitly chop off the NUL // terminator. This could do the wrong thing if someone tries to construct an // ArrayPtr<const char> from a non-NUL-terminated char array, but evidence suggests that all // real use cases are in fact intending to remove the NUL terminator. It's convenient to be // able to specify ArrayPtr<const char> as a parameter type and be able to accept strings // as input in addition to arrays. Currently, you'll need overloading to support string // literals in this case, but if you overload StringPtr, then you'll find that several // conversions (e.g. from String and from a literal char array) become ambiguous! You end up // having to overload for literal char arrays specifically which is cumbersome. static_assert(!isSameType<T, const char>(), "Can't implicitly convert literal char array to ArrayPtr because we don't know if " "you meant to include the NUL terminator. We may change this in the future to " "automatically drop the NUL terminator. For now, try explicitly converting to StringPtr, " "which can in turn implicitly convert to ArrayPtr<const char>."); static_assert(!isSameType<T, const char16_t>(), "see above"); static_assert(!isSameType<T, const char32_t>(), "see above"); } inline constexpr ArrayPtr(T (&native)[size]): ptr(native), size_(size) {} // Construct an ArrayPtr from a native C-style array. inline operator ArrayPtr<const T>() const { return ArrayPtr<const T>(ptr, size_); @@ -1330,17 +1290,6 @@ return true; } inline bool operator!=(const ArrayPtr& other) const { return !(*this == other); } template <typename U> inline bool operator==(const ArrayPtr<U>& other) const { if (size_ != other.size()) return false; for (size_t i = 0; i < size_; i++) { if (ptr[i] != other[i]) return false; } return true; } template <typename U> inline bool operator!=(const ArrayPtr<U>& other) const { return !(*this == other); } private: T* ptr; VisitFace/RtspNativeCodec/app/libs/capnproto/include/kj/compat/http.h
@@ -144,7 +144,7 @@ // // HttpHeaderId::HOST // // TODO(soon): Fill this out with more common headers. // TODO(0.7): Fill this out with more common headers. #define DECLARE_HEADER(id, name) \ static const HttpHeaderId id; @@ -433,7 +433,7 @@ // // `url` and `headers` are invalidated when the returned promise resolves. virtual kj::Promise<kj::Own<kj::AsyncIoStream>> connect(kj::StringPtr host); virtual kj::Promise<kj::Own<kj::AsyncIoStream>> connect(kj::String host); // Handles CONNECT requests. Only relevant for proxy clients. Default implementation throws // UNIMPLEMENTED. }; @@ -494,7 +494,7 @@ // // `url` and `headers` are invalidated when the returned promise resolves. virtual kj::Promise<kj::Own<kj::AsyncIoStream>> connect(kj::StringPtr host); virtual kj::Promise<kj::Own<kj::AsyncIoStream>> connect(kj::String host); // Handles CONNECT requests. Only relevant for proxy services. Default implementation throws // UNIMPLEMENTED. }; VisitFace/RtspNativeCodec/app/libs/capnproto/include/kj/exception.h
@@ -33,7 +33,6 @@ namespace kj { class ExceptionImpl; template <typename T> class Function; class Exception { // Exception thrown in case of fatal errors. @@ -217,11 +216,6 @@ virtual StackTraceMode stackTraceMode(); // Returns the current preferred stack trace mode. virtual Function<void(Function<void()>)> getThreadInitializer(); // Called just before a new thread is spawned using kj::Thread. Returns a function which should // be invoked inside the new thread to initialize the thread's ExceptionCallback. The initializer // function itself receives, as its parameter, the thread's main function, which it must call. protected: ExceptionCallback& next; @@ -230,8 +224,6 @@ class RootExceptionCallback; friend ExceptionCallback& getExceptionCallback(); friend class Thread; }; ExceptionCallback& getExceptionCallback(); VisitFace/RtspNativeCodec/app/libs/capnproto/include/kj/mutex.h
@@ -67,16 +67,6 @@ // non-trivial, assert that the mutex is locked (which should be good enough to catch problems // in unit tests). In non-debug builds, do nothing. #if KJ_USE_FUTEX // TODO(soon): Implement on pthread & win32 class Predicate { public: virtual bool check() = 0; }; void lockWhen(Predicate& predicate); // Lock (exclusively) when predicate.check() returns true. #endif private: #if KJ_USE_FUTEX uint futex; @@ -89,11 +79,6 @@ static constexpr uint EXCLUSIVE_HELD = 1u << 31; static constexpr uint EXCLUSIVE_REQUESTED = 1u << 30; static constexpr uint SHARED_COUNT_MASK = EXCLUSIVE_REQUESTED - 1; struct Waiter; kj::Maybe<Waiter&> waitersHead = nullptr; kj::Maybe<Waiter&>* waitersTail = &waitersHead; // linked list of waitUntil()s; can only modify under lock #elif _WIN32 uintptr_t srwLock; // Actually an SRWLOCK, but don't want to #include <windows.h> in header. @@ -263,39 +248,6 @@ inline T& getAlreadyLockedShared(); inline T& getAlreadyLockedExclusive() const; // Like `getWithoutLock()`, but asserts that the lock is already held by the calling thread. #if KJ_USE_FUTEX // TODO(soon): Implement on pthread & win32 template <typename Cond, typename Func> auto when(Cond&& condition, Func&& callback) const -> decltype(callback(instance<T&>())) { // Waits until condition(state) returns true, then calls callback(state) under lock. // // `condition`, when called, receives as its parameter a const reference to the state, which is // locked (either shared or exclusive). `callback` returns a mutable reference, which is // exclusively locked. // // `condition()` may be called multiple times, from multiple threads, while waiting for the // condition to become true. It may even return true once, but then be called more times. // It is guaranteed, though, that at the time `callback()` is finally called, `condition()` // would currently return true (assuming it is a pure function of the guarded data). struct PredicateImpl final: public _::Mutex::Predicate { bool check() override { return condition(value); } Cond&& condition; const T& value; PredicateImpl(Cond&& condition, const T& value) : condition(kj::fwd<Cond>(condition)), value(value) {} }; PredicateImpl impl(kj::fwd<Cond>(condition), value); mutex.lockWhen(impl); KJ_DEFER(mutex.unlock(_::Mutex::EXCLUSIVE)); return callback(value); } #endif private: mutable _::Mutex mutex; VisitFace/RtspNativeCodec/app/libs/capnproto/include/kj/one-of.h
@@ -81,21 +81,6 @@ return *reinterpret_cast<T*>(space); } template <typename T> Maybe<T&> tryGet() { if (is<T>()) { return *reinterpret_cast<T*>(space); } else { return nullptr; } } template <uint i> KJ_NORETURN(void allHandled()); // After a series of if/else blocks handling each variant of the OneOf, have the final else // block call allHandled<n>() where n is the number of variants. This will fail to compile // if new variants are added in the future. private: uint tag; @@ -164,17 +149,6 @@ doAll(moveVariantFrom<Variants>(other)...); } }; template <typename... Variants> template <uint i> void OneOf<Variants...>::allHandled() { // After a series of if/else blocks handling each variant of the OneOf, have the final else // block call allHandled<n>() where n is the number of variants. This will fail to compile // if new variants are added in the future. static_assert(i == sizeof...(Variants), "new OneOf variants need to be handled here"); KJ_UNREACHABLE; } } // namespace kj VisitFace/RtspNativeCodec/app/libs/capnproto/include/kj/parse/char.h
@@ -111,13 +111,6 @@ return (bits[c / 64] & (1ll << (c % 64))) != 0; } inline bool containsAll(ArrayPtr<const char> text) const { for (char c: text) { if (!contains(c)) return false; } return true; } template <typename Input> Maybe<char> operator()(Input& input) const { if (input.atEnd()) return nullptr; VisitFace/RtspNativeCodec/app/libs/capnproto/include/kj/thread.h
@@ -53,10 +53,7 @@ private: struct ThreadState { ThreadState(Function<void()> func); Function<void()> func; Function<void(Function<void()>)> initializer; kj::Maybe<kj::Exception> exception; unsigned int refcount; VisitFace/RtspNativeCodec/app/libs/capnproto/include/kj/vector.h
@@ -43,7 +43,6 @@ public: inline Vector() = default; inline explicit Vector(size_t capacity): builder(heapArrayBuilder<T>(capacity)) {} inline Vector(Array<T>&& array): builder(kj::mv(array)) {} inline operator ArrayPtr<T>() { return builder; } inline operator ArrayPtr<const T>() const { return builder; } @@ -70,18 +69,6 @@ setCapacity(size()); } return builder.finish(); } template <typename U> inline bool operator==(const U& other) const { return asPtr() == other; } template <typename U> inline bool operator!=(const U& other) const { return asPtr() != other; } inline ArrayPtr<T> slice(size_t start, size_t end) { return asPtr().slice(start, end); } inline ArrayPtr<const T> slice(size_t start, size_t end) const { return asPtr().slice(start, end); } template <typename... Params> @@ -116,7 +103,9 @@ } inline void clear() { builder.resize(0); while (builder.size() > 0) { builder.removeLast(); } } inline void truncate(size_t size) {