pub trait RawEncode {
    fn raw_measure(
        &self,
        purpose: &Option<RawEncodePurpose>
    ) -> BuckyResult<usize>; fn raw_encode<'a>(
        &self,
        buf: &'a mut [u8],
        purpose: &Option<RawEncodePurpose>
    ) -> BuckyResult<&'a mut [u8]>; fn raw_tail_encode<'a>(
        &self,
        buf: &'a mut [u8],
        purpose: &Option<RawEncodePurpose>
    ) -> BuckyResult<&'a [u8]> { ... } fn raw_encode_to_buffer(&self) -> BuckyResult<Vec<u8>> { ... } fn raw_hash_value(&self) -> BuckyResult<HashValue> { ... } fn hash_buf(&self, encoded_buf: &[u8]) -> HashValue { ... } fn raw_hash_encode(&self) -> BuckyResult<Vec<u8>> { ... } }

Required Methods

Provided Methods

Implementations on Foreign Types

Implementors

TypelessObjectDesc 用于计算ID用的编码

  • [1] ctx 部分包含obj_type, obj_flags 信息(前5bits为0,区别于NamedObject里的ctx.obj_flags)
  • [2] 其余部分为desc本身的编码

NamedObjectDesc 独立编解码,需要包含obj_type+obj_flags信息

  • [1] ctx 部分包含obj_type, obj_flags 信息(前5bits为0,区别于NamedObject里的ctx.obj_flags)
  • [2] 其余部分为desc本身的编码 需要注意Desc部分独立编码,需要在头部编码正确的NamedObjectContext;如果在NamedObject内部整体编码,则由外层保证