1use proc_macro2::TokenStream;
2
3pub enum Error {
4 SynError(syn::Error),
5 Darling(darling::Error),
6 MissingPrimaryKey,
7 AggregatePrimaryKeyNotSupported,
8 UnnamedFieldsNotSupported,
9}
10
11impl From<syn::Error> for Error {
12 fn from(e: syn::Error) -> Self {
13 Error::SynError(e)
14 }
15}
16
17impl From<darling::Error> for Error {
18 fn from(e: darling::Error) -> Self {
19 Error::Darling(e)
20 }
21}
22
23impl Error {
24 pub fn into_compile_error(self) -> TokenStream {
25 match self {
26 Error::SynError(e) => e.to_compile_error(),
27 Error::Darling(e) => e.write_errors(),
28 Error::MissingPrimaryKey => todo!(),
29 Error::AggregatePrimaryKeyNotSupported => todo!(),
30 Error::UnnamedFieldsNotSupported => todo!(),
31 }
32 }
33}
34
35pub type Result<T = TokenStream, E = Error> = std::result::Result<T, E>;