use syn::{
Field,
Ident,
};
use crate::{
field_attributes::FieldAttributes,
serde_attributes::SerdeAttributes,
};
#[must_use]
pub(crate) struct NamedField<'a> {
field: &'a Field,
identifier: &'a Ident,
attributes: FieldAttributes,
serde_attributes: SerdeAttributes,
}
impl<'a> NamedField<'a> {
#[inline(always)]
pub(crate) const fn new(
field: &'a Field,
identifier: &'a Ident,
attributes: FieldAttributes,
serde_attributes: SerdeAttributes,
) -> Self {
Self {
field,
identifier,
attributes,
serde_attributes,
}
}
#[inline(always)]
pub(crate) const fn field(&self) -> &'a Field {
self.field
}
#[inline(always)]
pub(crate) const fn identifier(&self) -> &'a Ident {
self.identifier
}
#[inline(always)]
pub(crate) const fn attributes(&self) -> &FieldAttributes {
&self.attributes
}
#[inline(always)]
pub(crate) const fn serde_attributes(&self) -> &SerdeAttributes {
&self.serde_attributes
}
}