Skip to main content

FromWXF

Trait FromWXF 

Source
pub trait FromWXF<'de>: Sized {
    // Required method
    fn from_wxf_with_tag<R>(
        r: &mut WxfReader<R>,
        tok: ExpressionEnum,
    ) -> Result<Self, Error>
       where R: Reader<'de>;

    // Provided method
    fn from_wxf<R>(r: &mut WxfReader<R>) -> Result<Self, Error>
       where R: Reader<'de> { ... }
}
Expand description

Deserialize a typed value by pulling tokens from a WxfReader.

Implemented by hand for scalars / std types and the wolfram-expr value types, and derivable via #[derive(FromWXF)]. Implementors usually provide only from_wxf_with_tag; the default from_wxf reads the leading token and delegates.

'de is the lifetime of the input buffer. Owned types are generic over it; borrowed types (e.g. &'de str) name it in Self.

Required Methods§

Source

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Self, Error>
where R: Reader<'de>,

Read the body given the already-consumed expression token.

Provided Methods§

Source

fn from_wxf<R>(r: &mut WxfReader<R>) -> Result<Self, Error>
where R: Reader<'de>,

Read a complete value: its expression token, then its body.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'de, K, V> FromWXF<'de> for BTreeMap<K, V>
where K: FromWXF<'de> + Ord, V: FromWXF<'de>,

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<BTreeMap<K, V>, Error>
where R: Reader<'de>,

Source§

impl<'de, K, V> FromWXF<'de> for HashMap<K, V>
where K: FromWXF<'de> + Eq + Hash, V: FromWXF<'de>,

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<HashMap<K, V>, Error>
where R: Reader<'de>,

Source§

impl<'de, T, E> FromWXF<'de> for Result<T, E>
where T: FromWXF<'de>, E: FromWXF<'de>,

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Result<T, E>, Error>
where R: Reader<'de>,

Source§

impl<'de, T> FromWXF<'de> for Option<T>
where T: FromWXF<'de>,

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Option<T>, Error>
where R: Reader<'de>,

Source§

impl<'de, T> FromWXF<'de> for Vec<T>
where T: FromWXF<'de> + WxfStruct,

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<T>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for &'de [u8]

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<&'de [u8], Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for &'de str

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<&'de str, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for ()

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<(), Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for String

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<String, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<f32>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<f32>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<f64>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<f64>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<i8>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<i8>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<i16>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<i16>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<i32>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<i32>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<i64>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<i64>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<u8>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<u8>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<u16>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<u16>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<u32>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<u32>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for Vec<u64>

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<Vec<u64>, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for bool

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<bool, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for f32

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<f32, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for f64

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<f64, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for i8

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<i8, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for i16

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<i16, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for i32

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<i32, Error>
where R: Reader<'de>,

Source§

impl<'de> FromWXF<'de> for i64

Source§

fn from_wxf_with_tag<R>( r: &mut WxfReader<R>, tok: ExpressionEnum, ) -> Result<i64, Error>
where R: Reader<'de>,

Implementors§

Source§

impl<'de> FromWXF<'de> for BigInteger

Source§

impl<'de> FromWXF<'de> for BigReal

Source§

impl<'de> FromWXF<'de> for Expr

Source§

impl<'de> FromWXF<'de> for NumericArray

Source§

impl<'de> FromWXF<'de> for PackedArray

Source§

impl<'de> FromWXF<'de> for Symbol