[][src]Enum libipld_macro::Ipld

pub enum Ipld {
    Null,
    Bool(bool),
    Integer(i128),
    Float(f64),
    String(String),
    Bytes(Vec<u8, Global>),
    List(Vec<Ipld, Global>),
    Map(BTreeMap<String, Ipld>),
    Link(Cid<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>>),
}

Construct an Ipld from a literal.

This code runs with edition 2018
let value = ipld!({
    "code": 200,
    "success": true,
    "payload": {
        "features": [
            "serde",
            "json"
        ]
    }
});

Variables or expressions can be interpolated into the JSON literal. Any type interpolated into an array element or object value must implement Serde's Serialize trait, while any type interpolated into a object key must implement Into<String>. If the Serialize implementation of the interpolated type decides to fail, or if the interpolated type contains a map with non-string keys, the json! macro will panic.

This code runs with edition 2018
let code = 200;
let features = vec!["serde", "json"];

let value = ipld!({
    "code": code,
    "success": code == 200,
    "payload": {
        features[0]: features[1]
    }
});

Trailing commas are allowed inside both arrays and objects.

This code runs with edition 2018
let value = ipld!([
    "notice",
    "the",
    "trailing",
    "comma -->",
]);

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, Global>)

Represents a sequence of bytes.

List(Vec<Ipld, Global>)

Represents a list.

Represents a map.

Represents a link to an Ipld node.

Implementations

impl Ipld[src]

pub fn take<'a, T>(self, index: T) -> Result<Ipld, TypeError> where
    T: Into<IpldIndex<'a>>, 
[src]

Destructs an ipld list or map

pub fn get<'a, T>(&self, index: T) -> Result<&Ipld, TypeError> where
    T: Into<IpldIndex<'a>>, 
[src]

Indexes into an ipld list or map.

pub fn iter(&self) -> IpldIter<'_>[src]

Returns an iterator.

pub fn references<E>(&self, set: &mut E) where
    E: Extend<Cid<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>>>, 
[src]

Returns the references to other blocks.

Trait Implementations

impl Clone for Ipld[src]

impl Debug for Ipld[src]

impl Decode<RawCodec> for Ipld[src]

impl Encode<RawCodec> for Ipld[src]

impl<'_> From<&'_ [u8]> for Ipld[src]

impl<'_> From<&'_ Cid<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>>> for Ipld[src]

impl<'_> From<&'_ str> for Ipld[src]

impl From<BTreeMap<String, Ipld>> for Ipld[src]

impl From<Box<[u8], Global>> for Ipld[src]

impl From<Cid<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>>> for Ipld[src]

impl From<String> for Ipld[src]

impl From<Vec<Ipld, Global>> for Ipld[src]

impl From<Vec<u8, Global>> for Ipld[src]

impl From<bool> for Ipld[src]

impl From<f32> for Ipld[src]

impl From<f64> for Ipld[src]

impl From<i128> for Ipld[src]

impl From<i16> for Ipld[src]

impl From<i32> for Ipld[src]

impl From<i64> for Ipld[src]

impl From<i8> for Ipld[src]

impl From<isize> for Ipld[src]

impl From<u16> for Ipld[src]

impl From<u32> for Ipld[src]

impl From<u64> for Ipld[src]

impl From<u8> for Ipld[src]

impl From<usize> for Ipld[src]

impl PartialEq<Ipld> for Ipld[src]

impl StructuralPartialEq for Ipld[src]

Auto Trait Implementations

impl RefUnwindSafe for Ipld

impl Send for Ipld

impl Sync for Ipld

impl Unpin for Ipld

impl UnwindSafe for Ipld

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> References<RawCodec> for T[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.