[][src]Enum serde_utils::Obj

pub enum Obj {
    Null,
    Bool(bool),
    Signed(i64),
    Unsigned(u64),
    Float(f64),
    Str(String),
    Bin(ByteBuf),
    List(Vec<Obj>),
    Map(BTreeMap<Obj, Obj>),
}

A generic object that can hold any value deserialized via Serde.

The important aspect of this generic object enum is that it can consume all possible values and does not expect any specific types. This makes it possible to deserialize data first and interpret it later.

Warning: Deserializing and even serializing unknown content allows attackers to control the recursion depth of the process and potentially crash it (although in a safe way).

Note: The implementations of PartialEq, PartialOrd, and Ord traits treat NAN floats as equal. The implementations of Hash, PartialEq, PartialOrd, and Ord traits treat non-negative Signed objects like Unsigned objects with the same value.

Variants

Null

None / null / nil

Bool(bool)

Boolean value

Signed(i64)

Signed integer

Unsigned(u64)

Unsigned integer

Float(f64)

Floating-point value

Str(String)

Utf-8 string

Bin(ByteBuf)

Byte sequence

List(Vec<Obj>)

List / tuple / sequence

Mapping / object

Trait Implementations

impl Eq for Obj[src]

impl Default for Obj[src]

impl Clone for Obj[src]

impl PartialOrd<Obj> for Obj[src]

impl PartialEq<Obj> for Obj[src]

impl Ord for Obj[src]

impl Hash for Obj[src]

impl Debug for Obj[src]

impl Display for Obj[src]

impl Serialize for Obj[src]

impl<'a> Deserialize<'a> for Obj[src]

Auto Trait Implementations

impl Send for Obj

impl Unpin for Obj

impl Sync for Obj

impl UnwindSafe for Obj

impl RefUnwindSafe for Obj

Blanket Implementations

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

type Owned = T

The resulting type after obtaining ownership.

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

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

impl<T> ToString for T where
    T: Display + ?Sized
[src]

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.

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

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

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

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]