#[macro_export]
#[doc(hidden)]
macro_rules! __diesel_parse_struct_body {
(
$headers:tt,
callback = $callback:ident,
body = {$($body:tt)*},
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = [],
body = ($($body)*,),
}
};
(
$headers:tt,
callback = $callback:ident,
body = ($($body:tt)*),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = [],
body = ($($body)*,),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = $fields:tt,
body = (
$(#$meta:tt)*
pub $($tail:tt)*),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = $fields,
body = ($(#$meta)* $($tail)*),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = $fields:tt,
body = (,),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = $fields,
body = (),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = [$($fields:tt)*],
body = (
#[column_name($column_name:ident)]
Option<$field_ty:ty> , $($tail:tt)*),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = [$($fields)* {
column_name: $column_name,
field_ty: Option<$field_ty>,
field_kind: option,
}],
body = ($($tail)*),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = [$($fields:tt)*],
body = (
#[column_name($column_name:ident)]
$field_ty:ty , $($tail:tt)*),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = [$($fields)* {
column_name: $column_name,
field_ty: $field_ty,
field_kind: regular,
}],
body = ($($tail)*),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = $fields:tt,
body = (
#[column_name($column_name:ident)]
$field_name:ident : $($tail:tt)*),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = $fields,
body = ($field_name as $column_name : $($tail)*),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = $fields:tt,
body = ($field_name:ident : $($tail:tt)*),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = $fields,
body = ($field_name as $field_name : $($tail)*),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = [$($fields:tt)*],
body = ($field_name:ident as $column_name:ident : Option<$field_ty:ty>, $($tail:tt)*),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = [$($fields)* {
field_name: $field_name,
column_name: $column_name,
field_ty: Option<$field_ty>,
field_kind: option,
}],
body = ($($tail)*),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = [$($fields:tt)*],
body = ($field_name:ident as $column_name:ident : $field_ty:ty, $($tail:tt)*),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = [$($fields)* {
field_name: $field_name,
column_name: $column_name,
field_ty: $field_ty,
field_kind: regular,
}],
body = ($($tail)*),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = [$($fields:tt)*],
body = ($field_ty:ty , $($tail:tt)*),
) => {
__diesel_parse_struct_body! {
$headers,
callback = $callback,
fields = [$($fields)* {
field_ty: $field_ty,
field_kind: bare,
}],
body = ($($tail)*),
}
};
(
$headers:tt,
callback = $callback:ident,
fields = $fields:tt,
body = (),
) => {
$callback! {
$headers,
fields = $fields,
}
};
}
#[doc(hidden)]
#[macro_export]
macro_rules! __diesel_parse_as_item {
($i:item) => { $i }
}