Add #[doc(hidden)] attribute to internal macros and re-export paste

This commit is contained in:
Michael Pfaff 2022-05-27 19:29:45 -04:00
parent 1ea5a510a7
commit 5ea54133f5
Signed by: michael
GPG Key ID: CF402C4A012AA9D4
2 changed files with 17 additions and 6 deletions

View File

@ -14,6 +14,10 @@ pub trait DynamicQuery {
}
}
// needed for macros
#[doc(hidden)]
pub use paste;
mod macros;
#[cfg(test)]

View File

@ -1,3 +1,6 @@
use paste;
#[doc(hidden)]
#[macro_export]
macro_rules! query_def_type {
(@ ($type:ty)) => {
@ -14,6 +17,7 @@ macro_rules! query_def_type {
};
}
#[doc(hidden)]
#[macro_export]
macro_rules! query_def_field {
(@dyn $type:ty) => {
@ -33,6 +37,7 @@ macro_rules! query_def_field {
};
}
#[doc(hidden)]
#[macro_export]
macro_rules! query_def_filter {
// note about this: 'dyn is implied for 'vec and 'map because if the type is not 'dyn, then the
@ -79,6 +84,7 @@ macro_rules! query_def_filter {
};
}
#[doc(hidden)]
#[macro_export]
macro_rules! query_def_internal_struct {
(@
@ -110,7 +116,7 @@ macro_rules! query_def_internal_struct {
)+
}
::paste::paste! {
$crate::paste::paste! {
#[derive(Debug, Clone, Copy, Default)]
$( $( #[$def_meta] )+ )?
$vis struct [<$data Def>] {
@ -121,7 +127,7 @@ macro_rules! query_def_internal_struct {
}
impl $crate::DynamicQuery for $data {
type Definition = ::paste::paste! { [<$data Def>] };
type Definition = $crate::paste::paste! { [<$data Def>] };
fn filter_ref(&mut self, def: &Self::Definition) {
$(
@ -137,6 +143,7 @@ macro_rules! query_def_internal_struct {
};
}
#[doc(hidden)]
#[macro_export]
macro_rules! query_def_internal_enum {
(@
@ -181,7 +188,7 @@ macro_rules! query_def_internal_enum {
),+
}
::paste::paste! {
$crate::paste::paste! {
#[derive(Debug, Clone, Copy, Default)]
$( $( #[$def_meta] )+ )?
$vis struct [<$data Def>] {
@ -191,7 +198,7 @@ macro_rules! query_def_internal_enum {
}
}
::paste::paste! {
$crate::paste::paste! {
// impl [<$data Def>] {
// $(
// pub type $variant = [<$data Def Variant $variant>];
@ -210,13 +217,13 @@ macro_rules! query_def_internal_enum {
}
impl $crate::DynamicQuery for $data {
type Definition = ::paste::paste! { [<$data Def>] };
type Definition = $crate::paste::paste! { [<$data Def>] };
fn filter_ref(&mut self, def: &Self::Definition) {
match self {
$(
Self::$variant { $( ref mut $field ),+ } => {
let def = ::paste::paste! { &def.[<$variant:snake:lower>] };
let def = $crate::paste::paste! { &def.[<$variant:snake:lower>] };
$(
let query = &def.$field;
$crate::query_def_filter!(@ query, $field, $($qualifier)? ($($type)+));