pub struct Component(/* private fields */);Expand description
Each path component is arbitrary bytes to be hashed together in a predictable way when the path is hashed to create something that can be linked and discovered by all DHT participants.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Component
impl<'de> Deserialize<'de> for Component
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Component, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Component, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<&str> for Component
Build a component from a String.
impl From<&str> for Component
Build a component from a String.
For many simple use cases we can construct a path out of a string similar to a URI. We represent this using the utf32 bytes rather than the utf8 bytes for the chars in the string which gives us a fixed width encoding for strings, which gives us a clean/easy way to support sharding based on strings by iterating over u32s rather than deciding what to do with variable width u8 or u16 characters.
IMPORTANT: if you are not using sharding and make heavy use of Path then
consider building your Component directly from my_string.as_bytes() to
achieve much more compact utf8 representations of each Component.