| use syn::Attribute; |
| |
| use crate::Result; |
| |
| /// Create an instance by parsing a list of attributes. |
| /// |
| /// This trait is useful when dealing with items such as traits on traits and impl blocks, |
| /// for which `darling` does not provide dedicated traits. |
| pub trait FromAttributes: Sized { |
| /// Create an instance by parsing a list of attributes. |
| /// |
| /// By convention, `FromAttributes` implementations should merge item |
| /// declarations across attributes, so that the following forms are |
| /// equivalent: |
| /// |
| /// ```rust,ignore |
| /// #[derive(Serialize)] |
| /// #[serde(rename_all = "camel_case")] |
| /// #[serde(borrow)] |
| /// pub struct SplitExample {} |
| /// |
| /// #[derive(Serialize)] |
| /// #[serde(borrow, rename_all = "camel_case")] |
| /// pub struct JoinedExample {} |
| /// ``` |
| fn from_attributes(attrs: &[Attribute]) -> Result<Self>; |
| } |