evitable_syn_meta_ext/
from_field.rs1use super::error::Result;
2use syn::Field;
3
4pub 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}