#![doc(html_root_url = "https://docs.rs/bobtail/0.3.0")]
#![doc = include_str!("../README.md")]
#![forbid(unsafe_code)]
#![forbid(missing_docs)]
extern crate self as bobtail;
pub use bobtail_proc_macros::block;
pub use bobtail_proc_macros::bob;
pub use bobtail_proc_macros::define;
#[cfg(feature = "omit-token")]
#[doc(hidden)]
#[macro_export]
macro_rules! __bobtail_munch {
(fn $fn:path; [$($args:tt)*]; [$($defaults:tt)*];) => {
$fn($($args)* $($defaults)*)
};
(fn $fn:path; [$($args:tt)*]; [$_d:expr, $($ds:tt)*]; _, $($rest:tt)+) => {
$crate::__bobtail_munch!(fn $fn; [$($args)* ::core::default::Default::default(),]; [$($ds)*]; $($rest)+)
};
(fn $fn:path; [$($args:tt)*]; [$_d:expr, $($ds:tt)*]; _ $(,)?) => {
$crate::__bobtail_munch!(fn $fn; [$($args)* ::core::default::Default::default(),]; [$($ds)*];)
};
(fn $fn:path; [$($args:tt)*]; [$_d:expr]; _ $(,)?) => {
$crate::__bobtail_munch!(fn $fn; [$($args)* ::core::default::Default::default(),]; [];)
};
(fn $fn:path; [$($args:tt)*]; [$_d:expr, $($ds:tt)*]; $arg:expr, $($rest:tt)+) => {
$crate::__bobtail_munch!(fn $fn; [$($args)* ::core::convert::From::from($arg),]; [$($ds)*]; $($rest)+)
};
(fn $fn:path; [$($args:tt)*]; [$_d:expr, $($ds:tt)*]; $arg:expr $(,)?) => {
$crate::__bobtail_munch!(fn $fn; [$($args)* ::core::convert::From::from($arg),]; [$($ds)*];)
};
(fn $fn:path; [$($args:tt)*]; [$_d:expr]; $arg:expr $(,)?) => {
$crate::__bobtail_munch!(fn $fn; [$($args)* ::core::convert::From::from($arg),]; [];)
};
(method $self:expr, $method:ident; [$($args:tt)*]; [$($defaults:tt)*];) => {
$self.$method($($args)* $($defaults)*)
};
(method $self:expr, $method:ident; [$($args:tt)*]; [$_d:expr, $($ds:tt)*]; _, $($rest:tt)+) => {
$crate::__bobtail_munch!(method $self, $method; [$($args)* ::core::default::Default::default(),]; [$($ds)*]; $($rest)+)
};
(method $self:expr, $method:ident; [$($args:tt)*]; [$_d:expr, $($ds:tt)*]; _ $(,)?) => {
$crate::__bobtail_munch!(method $self, $method; [$($args)* ::core::default::Default::default(),]; [$($ds)*];)
};
(method $self:expr, $method:ident; [$($args:tt)*]; [$_d:expr]; _ $(,)?) => {
$crate::__bobtail_munch!(method $self, $method; [$($args)* ::core::default::Default::default(),]; [];)
};
(method $self:expr, $method:ident; [$($args:tt)*]; [$_d:expr, $($ds:tt)*]; $arg:expr, $($rest:tt)+) => {
$crate::__bobtail_munch!(method $self, $method; [$($args)* ::core::convert::From::from($arg),]; [$($ds)*]; $($rest)+)
};
(method $self:expr, $method:ident; [$($args:tt)*]; [$_d:expr, $($ds:tt)*]; $arg:expr $(,)?) => {
$crate::__bobtail_munch!(method $self, $method; [$($args)* ::core::convert::From::from($arg),]; [$($ds)*];)
};
(method $self:expr, $method:ident; [$($args:tt)*]; [$_d:expr]; $arg:expr $(,)?) => {
$crate::__bobtail_munch!(method $self, $method; [$($args)* ::core::convert::From::from($arg),]; [];)
};
}