47 lines
1.5 KiB
Rust
47 lines
1.5 KiB
Rust
#[cfg(feature = "specta")]
|
|
mod specta;
|
|
|
|
#[cfg(feature = "tauri")]
|
|
mod error;
|
|
|
|
mod pin;
|
|
|
|
/// This macro is used to derive the `specta::Type` trait for the annotated item.
|
|
/// It's mainly meant for entity-generation with sea-orm-cli (it doesn't like commas in attributes)
|
|
///
|
|
/// #### Expands to:
|
|
/// ```
|
|
/// #[cfg_attr(feature = "specta", derive(specta::Type))]
|
|
/// ```
|
|
///
|
|
/// ## `rename` attribute
|
|
/// Add `rename = ''` attribute to rename the type.
|
|
///
|
|
/// #### Expands to:
|
|
/// ```
|
|
/// #[cfg_attr(feature = "specta", derive(specta::Type))]
|
|
/// #[cfg_attr(feature = "specta", specta(rename = #rename))]
|
|
/// ```
|
|
#[proc_macro_attribute]
|
|
#[cfg(feature = "specta")]
|
|
pub fn specta(attr: proc_macro::TokenStream, item: proc_macro::TokenStream) -> proc_macro::TokenStream {
|
|
specta::specta(attr, item)
|
|
}
|
|
|
|
/// This macro is used to implement the `serde::Serialize` trait for the annotated item.
|
|
/// It only works for enums and tries to serialize them so that taurpc can use them properly.
|
|
#[proc_macro_derive(SerializedError, attributes(from, skip))]
|
|
pub fn serialized_error_derive(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
|
|
error::error_derive(item)
|
|
}
|
|
|
|
#[proc_macro_attribute]
|
|
pub fn error(attr: proc_macro::TokenStream, item: proc_macro::TokenStream) -> proc_macro::TokenStream {
|
|
error::error_attr(attr, item)
|
|
}
|
|
|
|
/// This macro Box::Pin a function
|
|
#[proc_macro_attribute]
|
|
pub fn pin(attr: proc_macro::TokenStream, item: proc_macro::TokenStream) -> proc_macro::TokenStream {
|
|
pin::pin(attr, item)
|
|
}
|