#![deny(missing_docs)]
#![warn(clippy::missing_docs_in_private_items)]
mod aux_storage;
mod communicator;
mod from_map;
mod run_sim;
mod simulation_aspects;
mod testing;
#[allow(missing_docs)]
#[proc_macro_derive(
AuxStorage,
attributes(
AuxStorageCorePath,
UpdateCycle,
UpdateMechanics,
UpdateInteraction,
UpdateReactions
)
)]
pub fn _aux_storage(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
aux_storage::derive_aux_storage(input)
}
#[allow(missing_docs)]
#[proc_macro]
pub fn build_aux_storage(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
aux_storage::construct_aux_storage(input)
}
#[allow(missing_docs)]
#[proc_macro_derive(Communicator, attributes(CommunicatorCorePath, Comm))]
pub fn _communicator(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
communicator::derive_communicator(input)
}
#[allow(missing_docs)]
#[proc_macro]
pub fn build_communicator(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
communicator::construct_communicator(input)
}
#[proc_macro]
pub fn communicator_generics_placeholders(
input: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
communicator::communicator_generics_placeholders(input)
}
#[allow(missing_docs)]
#[proc_macro_derive(FromMap, attributes(FromMapCorePath, FromMapIndex))]
pub fn from_map(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
from_map::derive_from_map(input)
}
#[proc_macro]
pub fn run_test_for_aspects(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
testing::run_test_for_aspects(input)
}
#[proc_macro]
pub fn run_simulation(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let kwargs = syn::parse_macro_input!(input as run_sim::KwargsSimParsed);
let kwargs = run_sim::KwargsSim::from(kwargs);
run_sim::run_simulation(kwargs).into()
}
#[proc_macro]
pub fn prepare_types(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let kwargs = syn::parse_macro_input!(input as run_sim::KwargsPrepareTypesParsed);
let kwargs = run_sim::KwargsPrepareTypes::from(kwargs);
run_sim::prepare_types(kwargs).into()
}
#[proc_macro]
pub fn test_compatibility(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let kwargs = syn::parse_macro_input!(input as run_sim::KwargsCompatibilityParsed);
let kwargs = run_sim::KwargsCompatibility::from(kwargs);
run_sim::test_compatibility(kwargs).into()
}
#[allow(missing_docs)]
#[proc_macro]
pub fn run_main(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
let kwargs = syn::parse_macro_input!(input as run_sim::KwargsMainParsed);
let kwargs = run_sim::KwargsMain::from(kwargs);
run_sim::run_main(kwargs).into()
}