Document the macros.

Add code examples for the macros
This commit is contained in:
Charles Chege 2021-10-29 10:36:18 +03:00
parent 642994a194
commit 06aa9e3175
2 changed files with 5 additions and 3 deletions

View File

@ -3,8 +3,7 @@ use proc_macro2::{Ident, TokenStream};
use quote::{quote, quote_spanned}; use quote::{quote, quote_spanned};
use syn::{punctuated::Punctuated, token::Comma, Data, DataEnum, Fields, Lit, Meta, Variant}; use syn::{punctuated::Punctuated, token::Comma, Data, DataEnum, Fields, Lit, Meta, Variant};
/// FIXME /// Derive a Column name for an enum type
/// Method to derive default column names from a &str
pub fn impl_default_as_str(ident: &Ident, data: &Data) -> syn::Result<TokenStream> { pub fn impl_default_as_str(ident: &Ident, data: &Data) -> syn::Result<TokenStream> {
let variants = match data { let variants = match data {
syn::Data::Enum(DataEnum { variants, .. }) => variants, syn::Data::Enum(DataEnum { variants, .. }) => variants,

View File

@ -106,12 +106,15 @@ pub fn derive_column(input: TokenStream) -> TokenStream {
} }
/// Derive a column if column names are not in snake-case /// Derive a column if column names are not in snake-case
/// ### Usage
/// ```
/// #[derive(Copy, Clone, Debug, EnumIter, DeriveCustomColumn)] /// #[derive(Copy, Clone, Debug, EnumIter, DeriveCustomColumn)]
/// pub enum Column { /// pub enum Column {
/// Id, /// Id,
/// Name, /// Name,
/// VendorId, /// VendorId,
/// } /// }
/// ```
#[proc_macro_derive(DeriveCustomColumn)] #[proc_macro_derive(DeriveCustomColumn)]
pub fn derive_custom_column(input: TokenStream) -> TokenStream { pub fn derive_custom_column(input: TokenStream) -> TokenStream {
let DeriveInput { ident, data, .. } = parse_macro_input!(input); let DeriveInput { ident, data, .. } = parse_macro_input!(input);
@ -165,7 +168,7 @@ pub fn derive_active_model(input: TokenStream) -> TokenStream {
} }
} }
/// FIXME Derive into an active model /// Derive into an active model
#[proc_macro_derive(DeriveIntoActiveModel, attributes(sea_orm))] #[proc_macro_derive(DeriveIntoActiveModel, attributes(sea_orm))]
pub fn derive_into_active_model(input: TokenStream) -> TokenStream { pub fn derive_into_active_model(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput); let input = parse_macro_input!(input as DeriveInput);