pub enum Ipld {
Null,
Bool(bool),
Integer(i128),
Float(f64),
String(String),
Bytes(Vec<u8>),
List(Vec<Ipld>),
Map(BTreeMap<String, Ipld>),
Link(Cid),
}Expand description
Ipld
Variants§
Null
Represents the absence of a value or the value undefined.
Bool(bool)
Represents a boolean value.
Integer(i128)
Represents an integer.
Float(f64)
Represents a floating point value.
String(String)
Represents an UTF-8 string.
Bytes(Vec<u8>)
Represents a sequence of bytes.
List(Vec<Ipld>)
Represents a list.
Map(BTreeMap<String, Ipld>)
Represents a map of strings.
Link(Cid)
Represents a map of integers.
Implementations§
Source§impl Ipld
impl Ipld
Sourcepub fn kind(&self) -> IpldKind
pub fn kind(&self) -> IpldKind
Convert from an Ipld object into its kind without any associated
values.
This is intentionally not implemented via From<Ipld> to prevent
accidental conversions by making it more explicit.
Sourcepub fn take<'a, T: Into<IpldIndex<'a>>>(
self,
index: T,
) -> Result<Option<Self>, IndexError>
pub fn take<'a, T: Into<IpldIndex<'a>>>( self, index: T, ) -> Result<Option<Self>, IndexError>
Destructs an ipld list or map
Sourcepub fn get<'a, T: Into<IpldIndex<'a>>>(
&self,
index: T,
) -> Result<Option<&Self>, IndexError>
pub fn get<'a, T: Into<IpldIndex<'a>>>( &self, index: T, ) -> Result<Option<&Self>, IndexError>
Indexes into an ipld list or map.
Sourcepub fn references<E: Extend<Cid>>(&self, set: &mut E)
pub fn references<E: Extend<Cid>>(&self, set: &mut E)
Returns the references to other blocks.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Ipld
impl<'de> Deserialize<'de> for Ipld
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl<'de> Deserializer<'de> for Ipld
Deserialize from an Ipld enum into a Rust type.
impl<'de> Deserializer<'de> for Ipld
Deserialize from an Ipld enum into a Rust type.
The deserialization will return an error if you try to deserialize into an
integer type that would be too small to hold the value stored in
Ipld::Integer.
[Ipld::Floats] can be converted to f32 if there is no of precision, else
it will error.
Source§type Error = SerdeError
type Error = SerdeError
Source§fn deserialize_i8<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_i8<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting an i8 value.Source§fn deserialize_i16<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_i16<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting an i16 value.Source§fn deserialize_i32<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_i32<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting an i32 value.Source§fn deserialize_i64<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_i64<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting an i64 value.Source§fn deserialize_u8<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_u8<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a u8 value.Source§fn deserialize_u16<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_u16<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a u16 value.Source§fn deserialize_u32<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_u32<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a u32 value.Source§fn deserialize_u64<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_u64<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a u64 value.Source§fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserializer to figure out how to drive the visitor based
on what data type is in the input. Read moreSource§fn deserialize_unit<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_unit<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a unit value.Source§fn deserialize_bool<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_bool<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a bool value.Source§fn deserialize_f32<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_f32<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a f32 value.Source§fn deserialize_f64<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_f64<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a f64 value.Source§fn deserialize_char<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_char<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a char value.Source§fn deserialize_str<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_str<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a string value and does
not benefit from taking ownership of buffered data owned by the
Deserializer. Read moreSource§fn deserialize_string<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_string<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a string value and would
benefit from taking ownership of buffered data owned by the
Deserializer. Read moreSource§fn deserialize_bytes<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_bytes<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a byte array and does not
benefit from taking ownership of buffered data owned by the
Deserializer. Read moreSource§fn deserialize_byte_buf<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_byte_buf<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a byte array and would
benefit from taking ownership of buffered data owned by the
Deserializer. Read moreSource§fn deserialize_seq<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_seq<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a sequence of values.Source§fn deserialize_tuple<V: Visitor<'de>>(
self,
len: usize,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_tuple<V: Visitor<'de>>( self, len: usize, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a sequence of values and
knows how many values there are without looking at the serialized data.Source§fn deserialize_tuple_struct<V: Visitor<'de>>(
self,
_name: &str,
len: usize,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_tuple_struct<V: Visitor<'de>>( self, _name: &str, len: usize, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a tuple struct with a
particular name and number of fields.Source§fn deserialize_map<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_map<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a map of key-value pairs.Source§fn deserialize_identifier<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_identifier<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting the name of a struct
field or the discriminant of an enum variant.Source§fn deserialize_struct<V: Visitor<'de>>(
self,
_name: &str,
_fields: &[&str],
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_struct<V: Visitor<'de>>( self, _name: &str, _fields: &[&str], visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a struct with a particular
name and fields.Source§fn deserialize_unit_struct<V: Visitor<'de>>(
self,
_name: &str,
_visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_unit_struct<V: Visitor<'de>>( self, _name: &str, _visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a unit struct with a
particular name.Source§fn deserialize_newtype_struct<V: Visitor<'de>>(
self,
name: &str,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_newtype_struct<V: Visitor<'de>>( self, name: &str, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting a newtype struct with a
particular name.Source§fn deserialize_enum<V: Visitor<'de>>(
self,
_name: &str,
_variants: &[&str],
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_enum<V: Visitor<'de>>( self, _name: &str, _variants: &[&str], visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting an enum value with a
particular name and possible variants.Source§fn deserialize_ignored_any<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_ignored_any<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type needs to deserialize a value whose type
doesn’t matter because it is ignored. Read moreSource§fn deserialize_option<V: Visitor<'de>>(
self,
visitor: V,
) -> Result<V::Value, Self::Error>
fn deserialize_option<V: Visitor<'de>>( self, visitor: V, ) -> Result<V::Value, Self::Error>
Deserialize type is expecting an optional value. Read moreSource§fn is_human_readable(&self) -> bool
fn is_human_readable(&self) -> bool
Deserialize implementations should expect to
deserialize their human-readable form. Read moreSource§impl PartialEq for Ipld
NaN floats are forbidden in the IPLD Data Model, but we do not enforce it.
So in case such a value is introduced accidentally, make sure that it still
compares as equal. This allows us to implement Eq for Ipld.
impl PartialEq for Ipld
NaN floats are forbidden in the IPLD Data Model, but we do not enforce it.
So in case such a value is introduced accidentally, make sure that it still
compares as equal. This allows us to implement Eq for Ipld.