Trait SynVersion

Source
pub trait SynVersion: Sized {
    type Attribute: GetSpan;
    type ArgMeta: GetSpan;
    type Error;

    // Required methods
    fn deserialize_attr_args(
        attr: &Self::Attribute,
    ) -> Option<Vec<Self::ArgMeta>>;
    fn deserialize_list_args(meta: &Self::ArgMeta) -> Option<Vec<Self::ArgMeta>>;
    fn deserialize_key(meta: &Self::ArgMeta) -> Option<String>;
    fn deserialize_attr_key(meta: &Self::Attribute) -> Option<String>;
    fn deserialize_integer<T>(meta: &Self::ArgMeta) -> Option<T>
       where T: FromStr,
             T::Err: Display;
    fn deserialize_float<T>(meta: &Self::ArgMeta) -> Option<T>
       where T: FromStr,
             T::Err: Display;
    fn deserialize_string(meta: &Self::ArgMeta) -> Option<String>;
    fn deserialize_bool(meta: &Self::ArgMeta) -> Option<bool>;
    fn deserialize_array(meta: &Self::ArgMeta) -> Option<Vec<Self::ArgMeta>>;
    fn convert_error(error: Error) -> Self::Error;
}
Expand description

Represents a Syn version and how it can parse attribute data into values

Required Associated Types§

Source

type Attribute: GetSpan

A type that represents an attribute.

Source

type ArgMeta: GetSpan

Metadata that can be used to deserialize a value.

Source

type Error

A Syn Error.

Required Methods§

Source

fn deserialize_attr_args(attr: &Self::Attribute) -> Option<Vec<Self::ArgMeta>>

Parses an attribute list into a vector of its elements as metadata.

Source

fn deserialize_list_args(meta: &Self::ArgMeta) -> Option<Vec<Self::ArgMeta>>

Parses a nested list into a vector of its elements as metadata.

Source

fn deserialize_key(meta: &Self::ArgMeta) -> Option<String>

Gets the key from a key value pair as a string.

Source

fn deserialize_attr_key(meta: &Self::Attribute) -> Option<String>

Gets the name of an attribute list.

Source

fn deserialize_integer<T>(meta: &Self::ArgMeta) -> Option<T>
where T: FromStr, T::Err: Display,

Attempts to get an integer from an argument. Returns None if the argument is a different type.

Source

fn deserialize_float<T>(meta: &Self::ArgMeta) -> Option<T>
where T: FromStr, T::Err: Display,

Attempts to get a float from an argument. Returns None if the argument is a different type.

Source

fn deserialize_string(meta: &Self::ArgMeta) -> Option<String>

Attempts to get a string from an argument. Returns None if the argument is a different type.

Source

fn deserialize_bool(meta: &Self::ArgMeta) -> Option<bool>

Attempts to get a boolean from an argument. Returns None if the argument is a different type.

Source

fn deserialize_array(meta: &Self::ArgMeta) -> Option<Vec<Self::ArgMeta>>

Attempts to get an array from an argument and returns a vector of its elements as metadata.

Source

fn convert_error(error: Error) -> Self::Error

Converts this crates error into a Syn error.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§