diff --git a/src/lib.rs b/src/lib.rs index 6273621..0067f2e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,6 +14,7 @@ mod expand; mod helpers; mod mapping; mod parse; +mod spanned; #[proc_macro_derive(Dto, attributes(dto))] pub fn dto_macro_derive(input: TokenStream) -> TokenStream { diff --git a/src/spanned.rs b/src/spanned.rs new file mode 100644 index 0000000..48afdd2 --- /dev/null +++ b/src/spanned.rs @@ -0,0 +1,21 @@ +use proc_macro2::Span; +use std::ops::Deref; + +pub(crate) struct Spanned { + pub(crate) inner: T, + pub(crate) span: Span, +} + +impl Spanned { + pub(crate) fn new(inner: T, span: Span) -> Spanned { + Spanned { inner, span } + } +} + +impl Deref for Spanned { + type Target = T; + + fn deref(&self) -> &Self::Target { + &self.inner + } +}