use proc_macro::TokenStream;
mod derive;
mod timestamps;
use derive::{Node, Relation};
use syn::{parse_macro_input, DeriveInput};
#[proc_macro_derive(Node, attributes(name, id))]
pub fn derive_node(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
Node::new(input).to_token_stream()
}
#[proc_macro_derive(Relation, attributes(name, id))]
pub fn derive_relation(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
Relation::new(input).to_token_stream()
}
#[proc_macro_attribute]
pub fn timestamps(args: TokenStream, input: TokenStream) -> TokenStream {
timestamps::stamps_impl(args, input)
}