evitable_syn_meta_ext/
from_field.rs

1use super::error::Result;
2use syn::Field;
3
4/// Creates an instance by parsing an individual field and its attributes.
5pub trait FromField: Sized {
6  fn from_field(field: &Field) -> Result<Self>;
7}
8
9impl FromField for () {
10  fn from_field(_: &Field) -> Result<Self> {
11    Ok(())
12  }
13}
14
15impl FromField for Field {
16  fn from_field(field: &Field) -> Result<Self> {
17    Ok(field.clone())
18  }
19}
20
21impl FromField for syn::Type {
22  fn from_field(field: &Field) -> Result<Self> {
23    Ok(field.ty.clone())
24  }
25}
26
27impl FromField for syn::Visibility {
28  fn from_field(field: &Field) -> Result<Self> {
29    Ok(field.vis.clone())
30  }
31}
32
33impl FromField for Vec<syn::Attribute> {
34  fn from_field(field: &Field) -> Result<Self> {
35    Ok(field.attrs.clone())
36  }
37}