pub trait RawEncode {
// Required methods
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]>;
// Provided methods
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§
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]>
Provided Methods§
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>>
Implementations on Foreign Types§
Source§impl RawEncode for &str
impl RawEncode for &str
fn raw_encode<'a>( &self, _buf: &'a mut [u8], _purpose: &Option<RawEncodePurpose>, ) -> BuckyResult<&'a mut [u8]>
fn raw_measure(&self, _purpose: &Option<RawEncodePurpose>) -> BuckyResult<usize>
Source§impl RawEncode for bool
impl RawEncode for bool
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]>
Source§impl RawEncode for i32
impl RawEncode for i32
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]>
Source§impl RawEncode for i64
impl RawEncode for i64
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]>
Source§impl RawEncode for str
impl RawEncode for str
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]>
Source§impl RawEncode for u8
impl RawEncode for u8
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]>
Source§impl RawEncode for u16
impl RawEncode for u16
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]>
Source§impl RawEncode for u32
impl RawEncode for u32
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]>
Source§impl RawEncode for u64
impl RawEncode for u64
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]>
Source§impl RawEncode for u128
impl RawEncode for u128
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]>
Source§impl RawEncode for String
impl RawEncode for String
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]>
Source§impl RawEncode for AtomicI32
impl RawEncode for AtomicI32
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]>
Source§impl RawEncode for AtomicU32
impl RawEncode for AtomicU32
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]>
Source§impl RawEncode for H256
impl RawEncode for H256
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]>
Source§impl<K: RawEncode + Ord + Hash, V: RawEncode> RawEncode for HashMap<K, V>
impl<K: RawEncode + Ord + Hash, V: RawEncode> RawEncode for HashMap<K, V>
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]>
Source§impl<K: RawEncode + Ord, V: RawEncode> RawEncode for BTreeMap<K, V>
impl<K: RawEncode + Ord, V: RawEncode> RawEncode for BTreeMap<K, V>
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]>
Source§impl<T1: RawEncode, T2: RawEncode, T3: RawEncode> RawEncode for (T1, T2, T3)
impl<T1: RawEncode, T2: RawEncode, T3: RawEncode> RawEncode for (T1, T2, T3)
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]>
Source§impl<T1: RawEncode, T2: RawEncode, T3: RawEncode, T4: RawEncode> RawEncode for (T1, T2, T3, T4)
impl<T1: RawEncode, T2: RawEncode, T3: RawEncode, T4: RawEncode> RawEncode for (T1, T2, T3, T4)
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]>
Source§impl<T1: RawEncode, T2: RawEncode, T3: RawEncode, T4: RawEncode, T5: RawEncode> RawEncode for (T1, T2, T3, T4, T5)
impl<T1: RawEncode, T2: RawEncode, T3: RawEncode, T4: RawEncode, T5: RawEncode> RawEncode for (T1, T2, T3, T4, T5)
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]>
Source§impl<T: RawEncode> RawEncode for Option<T>
impl<T: RawEncode> RawEncode for Option<T>
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]>
Source§impl<T: RawEncode> RawEncode for [T]
impl<T: RawEncode> RawEncode for [T]
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]>
Source§impl<T: RawEncode> RawEncode for BTreeSet<T>
impl<T: RawEncode> RawEncode for BTreeSet<T>
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]>
Source§impl<T: RawEncode> RawEncode for Vec<T>
impl<T: RawEncode> RawEncode for Vec<T>
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]>
Source§impl<T: RawEncode> RawEncode for Range<T>
impl<T: RawEncode> RawEncode for Range<T>
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]>
Source§impl<T: RawEncode> RawEncode for HashSet<T>
impl<T: RawEncode> RawEncode for HashSet<T>
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]>
Source§impl<T: RawEncode, E: RawEncode> RawEncode for Result<T, E>
impl<T: RawEncode, E: RawEncode> RawEncode for Result<T, E>
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]>
Source§impl<T: RawEncode, U: ArrayLength<T>> RawEncode for GenericArray<T, U>
impl<T: RawEncode, U: ArrayLength<T>> RawEncode for GenericArray<T, U>
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]>
Source§impl<T: RawEncode, U: RawEncode> RawEncode for (T, U)
impl<T: RawEncode, U: RawEncode> RawEncode for (T, U)
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]>
Source§impl<V: RawEncode> RawEncode for Arc<V>
impl<V: RawEncode> RawEncode for Arc<V>
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]>
Source§impl<V: RawEncode> RawEncode for Mutex<V>
impl<V: RawEncode> RawEncode for Mutex<V>
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]>
Implementors§
impl RawEncode for AnyNamedObject
impl RawEncode for BuckyErrorCode
impl RawEncode for BuckyOriginError
impl RawEncode for BuckySystemErrorCode
impl RawEncode for CoinTokenId
impl RawEncode for ContractTypeCode
impl RawEncode for DirBodyContent
impl RawEncode for InnerNode
impl RawEncode for IpAddr
impl RawEncode for NDNObjectInfo
impl RawEncode for NameLink
impl RawEncode for NameState
impl RawEncode for OODWorkMode
impl RawEncode for ObjectMapContent
impl RawEncode for ObjectMapSimpleContentType
impl RawEncode for ObjectTypeCode
impl RawEncode for PrivateKey
impl RawEncode for ProofTypeCode
impl RawEncode for PublicKey
impl RawEncode for PublicKeyValue
impl RawEncode for ServiceAuthType
impl RawEncode for SimpleContent
impl RawEncode for StandardObject
impl RawEncode for TxCaller
impl RawEncode for TxCondition
impl RawEncode for ActionBodyContent
impl RawEncode for ActionDescContent
impl RawEncode for AesKey
impl RawEncode for AppGroupBodyContent
impl RawEncode for AppGroupDescContent
impl RawEncode for Area
impl RawEncode for Attributes
impl RawEncode for BuckyError
impl RawEncode for BuckySize
impl RawEncode for ChunkId
impl RawEncode for ChunkTransContract
impl RawEncode for ChunkTransReceipt
impl RawEncode for ContractBodyContent<ContractData>
impl RawEncode for ContractData
impl RawEncode for DSGReceipt
impl RawEncode for DeviceBodyContent
impl RawEncode for DeviceDescContent
impl RawEncode for DiffBodyContent
impl RawEncode for DiffDescContent
impl RawEncode for DirDescContent
impl RawEncode for ERC20
impl RawEncode for EmptyBodyContent
impl RawEncode for EmptyDescContent
impl RawEncode for EmptyProtobufBodyContent
impl RawEncode for Endpoint
impl RawEncode for FileBodyContent
impl RawEncode for FileDescContent
impl RawEncode for HashValue
impl RawEncode for InnerNodeInfo
impl RawEncode for KeyMixHash
impl RawEncode for NDNObjectList
impl RawEncode for NameInfo
impl RawEncode for NameRecord
impl RawEncode for NamedObjectContext
impl RawEncode for ObjectId
impl RawEncode for ObjectLink
impl RawEncode for ObjectMapBodyContent
impl RawEncode for ObjectMapDescContent
impl RawEncode for ObjectMapDiffMapItem
impl RawEncode for ObjectMapDiffSetItem
impl RawEncode for ObjectMapHubContent
impl RawEncode for ObjectMapHubItem
impl RawEncode for ObjectMapSimpleContent
impl RawEncode for OrgBodyContent
impl RawEncode for OrgDescContent
impl RawEncode for PeopleBodyContent
impl RawEncode for PeopleDescContent
impl RawEncode for ProofData
impl RawEncode for ProofOfDSG
impl RawEncode for SNContract
impl RawEncode for SNContractBody
impl RawEncode for SNReceipt
impl RawEncode for ServiceContract
impl RawEncode for ServiceReceipt
impl RawEncode for Signature
impl RawEncode for SignedEndpoint
impl RawEncode for SimpleGroupBodyContent
impl RawEncode for SimpleGroupDescContent
impl RawEncode for SizeU8
impl RawEncode for SizeU16
impl RawEncode for SizeU32
impl RawEncode for TailedOwnedData
impl RawEncode for TrafficContract
impl RawEncode for TrafficReceipt
impl RawEncode for TxBody
impl RawEncode for TxBodyContent
impl RawEncode for TypelessObjectBodyContent
impl RawEncode for TypelessObjectDesc
§TypelessObjectDesc 用于计算ID用的编码
- [1] ctx 部分包含obj_type, obj_flags 信息(前5bits为0,区别于NamedObject里的ctx.obj_flags)
- [2] 其余部分为desc本身的编码
impl RawEncode for USize
impl RawEncode for UnionAccountBodyContent
impl RawEncode for UnionAccountDescContent
impl RawEncode for UniqueId
impl RawEncode for VarString
impl<'de, B, O> RawEncode for ObjectMutBody<B, O>
impl<'o, T: RawEncode> RawEncode for OptionRef<'o, T>
impl<'op, T> RawEncode for DiffOpRef<'op, T>where
T: RawEncode,
impl<'r> RawEncode for PublicKeyRef<'r>
impl<'v, T> RawEncode for ItemChangeRef<'v, T>where
T: RawEncode,
impl<O> RawEncode for NamedObjectBase<O>where
O: ObjectType,
O::DescType: RawEncodeWithContext<NamedObjectContext>,
O::ContentType: RawEncode + BodyContent,
impl<T> RawEncode for ItemChange<T>where
T: RawEncode,
impl<T> RawEncode for MapContentT<T>
impl<T> RawEncode for NamedObjectDesc<T>where
T: DescContent + RawEncode,
§NamedObjectDesc 独立编解码,需要包含obj_type+obj_flags信息
- [1] ctx 部分包含obj_type, obj_flags 信息(前5bits为0,区别于NamedObject里的ctx.obj_flags)
- [2] 其余部分为desc本身的编码 需要注意Desc部分独立编码,需要在头部编码正确的NamedObjectContext;如果在NamedObject内部整体编码,则由外层保证