ExtensionObject

Struct ExtensionObject 

Source
pub struct ExtensionObject {
    pub node_id: NodeId,
    pub body: ExtensionObjectEncoding,
}
Expand description

An extension object holds a serialized object identified by its node id.

Fields§

§node_id: NodeId§body: ExtensionObjectEncoding

Implementations§

Source§

impl ExtensionObject

Source

pub fn null() -> ExtensionObject

Creates a null extension object, i.e. one with no value or payload

Source

pub fn is_null(&self) -> bool

Tests for null node id.

Source

pub fn is_empty(&self) -> bool

Tests for empty body.

Source

pub fn object_id(&self) -> Result<ObjectId, ExtensionObjectError>

Returns the object id of the thing this extension object contains, assuming the object id can be recognised from the node id.

Source

pub fn from_encodable<N, T>(node_id: N, encodable: &T) -> ExtensionObject
where N: Into<NodeId>, T: BinaryEncoder<T>,

Creates an extension object with the specified node id and the encodable object as its payload. The body is set to a byte string containing the encoded struct.

Source

pub fn decode_inner<T>( &self, decoding_options: &DecodingOptions, ) -> Result<T, StatusCode>
where T: BinaryEncoder<T>,

Decodes the inner content of the extension object and returns it. The node id is ignored for decoding. The caller supplies the binary encoder impl that should be used to extract the data. Errors result in a decoding error.

Trait Implementations§

Source§

impl BinaryEncoder<ExtensionObject> for ExtensionObject

Source§

fn byte_len(&self) -> usize

Returns the exact byte length of the structure as it would be if encode were called. This may be called prior to writing to ensure the correct amount of space is available.
Source§

fn encode<S>(&self, stream: &mut S) -> Result<usize, StatusCode>
where S: Write,

Encodes the instance to the write stream.
Source§

fn decode<S>( stream: &mut S, decoding_options: &DecodingOptions, ) -> Result<ExtensionObject, StatusCode>
where S: Read,

Decodes an instance from the read stream. The decoding options contains restrictions set by the server / client on the length of strings, arrays etc. If these limits are exceeded the implementation should return with a BadDecodingError as soon as possible.
Source§

fn encode_to_vec(&self) -> Vec<u8>

Source§

impl Clone for ExtensionObject

Source§

fn clone(&self) -> ExtensionObject

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ExtensionObject

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for ExtensionObject

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<ExtensionObject, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<&Operand> for ExtensionObject

Source§

fn from(v: &Operand) -> ExtensionObject

Converts to this type from the input type.
Source§

impl From<ExtensionObject> for Variant

Source§

fn from(v: ExtensionObject) -> Variant

Converts to this type from the input type.
Source§

impl From<Operand> for ExtensionObject

Source§

fn from(v: Operand) -> ExtensionObject

Converts to this type from the input type.
Source§

impl PartialEq for ExtensionObject

Source§

fn eq(&self, other: &ExtensionObject) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for ExtensionObject

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl TryFrom<&ExtensionObject> for Operand

Source§

type Error = StatusCode

The type returned in the event of a conversion error.
Source§

fn try_from( v: &ExtensionObject, ) -> Result<Operand, <Operand as TryFrom<&ExtensionObject>>::Error>

Performs the conversion.
Source§

impl StructuralPartialEq for ExtensionObject

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,