#[macro_export]
macro_rules! clear {
(vlogger: $vlogger:expr, $surface:expr) => {
$crate::__private_api::clear(
$crate::__vlog_vlogger!($vlogger),
$crate::__private_api::module_path!(),
$surface,
)
};
(vlogger: $vlogger:expr, target: $target:expr, $surface:expr) => {
$crate::__private_api::clear($crate::__vlog_vlogger!($vlogger), $target, $surface)
};
(target: $target:expr, $surface:expr) => {
$crate::__private_api::clear(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$target,
$surface,
)
};
($surface:expr) => {
$crate::__private_api::clear(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$crate::__private_api::module_path!(),
$surface,
)
};
}
#[macro_export]
macro_rules! message {
(vlogger: $vlogger:expr, target: $target:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__message!(
$crate::__vlog_vlogger!($vlogger),
$surface,
&($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
(vlogger: $vlogger:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__message!(
$crate::__vlog_vlogger!($vlogger),
$surface,
&($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
(target: $target:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__message!(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
&($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
($surface:expr, $($arg:tt)+) => (
$crate::__message!(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
&($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
)
}
#[macro_export]
macro_rules! point {
(vlogger: $vlogger:expr, target: $target:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__point!(
$crate::__vlog_vlogger!($vlogger),
$surface,
&($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
(vlogger: $vlogger:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__point!(
$crate::__vlog_vlogger!($vlogger),
$surface,
&($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
(target: $target:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__point!(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
&($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
($surface:expr, $($arg:tt)+) => (
$crate::__point!(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
&($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
)
}
#[macro_export]
macro_rules! label {
(vlogger: $vlogger:expr, target: $target:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__label!(
$crate::__vlog_vlogger!($vlogger),
$surface,
&($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
(vlogger: $vlogger:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__label!(
$crate::__vlog_vlogger!($vlogger),
$surface,
&($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
(target: $target:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__label!(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
&($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
($surface:expr, $($arg:tt)+) => (
$crate::__label!(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
&($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
)
}
#[macro_export]
macro_rules! polyline {
(vlogger: $vlogger:expr, target: $target:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__line!(
$crate::__vlog_vlogger!($vlogger),
$surface,
&($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
(vlogger: $vlogger:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__line!(
$crate::__vlog_vlogger!($vlogger),
$surface,
&($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
(target: $target:expr, $surface:expr, $($arg:tt)+) => ({
$crate::__line!(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
&($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
});
($surface:expr, $($arg:tt)+) => (
$crate::__line!(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
&($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
$($arg)+
)
)
}
#[doc(hidden)]
#[macro_export]
#[clippy::format_args]
macro_rules! __message {
($vlogger:expr, $surface:expr, $loc:expr, color: $color:tt, $($arg:tt)+) => {
$crate::__private_api::vlog_message(
$vlogger,
$crate::__private_api::format_args!($($arg)+),
$crate::__color!($color),
$surface,
$loc
)
};
($vlogger:expr, $surface:expr, $loc:expr, $($arg:tt)+) => {
$crate::__private_api::vlog_message(
$vlogger,
$crate::__private_api::format_args!($($arg)+),
$crate::__color!(Base),
$surface,
$loc
)
};
}
#[doc(hidden)]
#[macro_export]
#[clippy::format_args]
macro_rules! __point {
($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, $size:expr, $color:tt, $style:tt, $($arg:tt)+) => {
$crate::__private_api::vlog_point(
$vlogger,
$crate::__private_api::format_args!($($arg)+),
$pos,
$size,
$crate::__color!($color),
$crate::__point_style!($style),
$surface,
$loc
)
};
($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, $size:expr, $color:tt, $style:tt) => {
$crate::__private_api::vlog_point(
$vlogger,
$crate::__private_api::format_args!(""),
$pos,
$size,
$crate::__color!($color),
$crate::__point_style!($style),
$surface,
$loc
)
};
($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, $size:expr, $color:tt) => {
$crate::__private_api::vlog_point(
$vlogger,
$crate::__private_api::format_args!(""),
$pos,
$size,
$crate::__color!($color),
$crate::__point_style!("o"),
$surface,
$loc
)
};
}
#[doc(hidden)]
#[macro_export]
#[clippy::format_args]
macro_rules! __label {
($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, ($size:expr, $color:tt, $align:tt), $($arg:tt)+) => {
$crate::__private_api::vlog_label(
$vlogger,
$crate::__private_api::format_args!($($arg)+),
$pos,
$size,
$crate::__color!($color),
$crate::__alignment!($align),
$surface,
$loc
)
};
($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, $($arg:tt)+) => {
$crate::__private_api::vlog_label(
$vlogger,
$crate::__private_api::format_args!($($arg)+),
$pos,
12.0, $crate::__color!(Base),
$crate::__alignment!("x"),
$surface,
$loc
)
};
}
#[doc(hidden)]
#[macro_export]
#[clippy::format_args]
macro_rules! __line {
($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $pos2:expr), $size:expr, $color:tt, $style:tt, $($arg:tt)+) => {
$crate::__private_api::vlog_line(
$vlogger,
$crate::__private_api::format_args!($($arg)+),
$pos1,
$pos2,
$size,
$crate::__color!($color),
$crate::__line_style!($style),
$surface,
$loc
)
};
($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $pos2:expr), $size:expr, $color:tt) => {
$crate::__line!($vlogger, $surface, $loc, ($pos1, $pos2), $size, $color, "-")
};
($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $($pos2:expr),+), $size:expr, $color:tt, $style:tt) => {
let mut last = $pos1;
$(
let next = $pos2;
$crate::__private_api::vlog_line(
$vlogger,
$crate::__private_api::format_args!(""),
last,
next.clone(),
$size,
$crate::__color!($color),
$crate::__line_style!($style),
$surface,
$loc
);
last = next;
)+
};
($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $($pos2:expr),+), $size:expr, $color:tt) => {
$crate::__line!($vlogger, $surface, $loc, ($pos1, $($pos2),+), $size, $color, "-")
};
($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $($pos2:expr,)+), $size:expr, $color:tt, $style:tt) => {
let mut last = $pos1;
let first = last.clone();
$(
let next = $pos2;
$crate::__private_api::vlog_line(
$vlogger,
$crate::__private_api::format_args!(""),
last,
next.clone(),
$size,
$crate::__color!($color),
$crate::__line_style!($style),
$surface,
$loc
);
last = next;
)+
$crate::__private_api::vlog_line(
$vlogger,
$crate::__private_api::format_args!(""),
last,
first,
$size,
$crate::__color!($color),
$crate::__line_style!($style),
$surface,
$loc
);
};
($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $($pos2:expr,)+), $size:expr, $color:tt) => {
$crate::__line!($vlogger, $surface, $loc, ($pos1, $($pos2,)+), $size, $color, "-")
};
}
#[macro_export]
macro_rules! vlog_enabled {
(vlogger: $vlogger:expr, target: $target:expr, $surface:expr) => {{
$crate::__private_api::enabled($crate::__vlog_vlogger!($vlogger), $surface, $target)
}};
(vlogger: $vlogger:expr, $surface:expr) => {{
$crate::__private_api::enabled(
$crate::__vlog_vlogger!($vlogger),
$surface,
$crate::__private_api::module_path!(),
)
}};
(target: $target:expr, $surface:expr) => {{
$crate::__private_api::enabled(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
$target,
)
}};
($surface:expr) => {{
$crate::__private_api::enabled(
$crate::__vlog_vlogger!(__vlog_global_vlogger),
$surface,
$crate::__private_api::module_path!(),
)
}};
}
#[doc(hidden)]
#[macro_export]
macro_rules! __vlog_vlogger {
(__vlog_global_vlogger) => {{
$crate::__private_api::GlobalVLogger
}};
($vlogger:expr) => {{
&($vlogger)
}};
}
#[doc(hidden)]
#[macro_export]
macro_rules! __point_style {
("O") => {
$crate::PointStyle::FilledCircle
};
("-O") => {
$crate::PointStyle::Circle
};
("--O") => {
$crate::PointStyle::DashedCircle
};
("o") => {
$crate::PointStyle::Point
};
("-o") => {
$crate::PointStyle::PointOutline
};
("s") => {
$crate::PointStyle::PointSquare
};
("-s") => {
$crate::PointStyle::PointSquareOutline
};
("x") => {
$crate::PointStyle::PointCross
};
("d") => {
$crate::PointStyle::PointDiamond
};
("-d") => {
$crate::PointStyle::PointDiamondOutline
};
($s:literal) => {
compile_error!(concat!("unknown point style ", $s))
};
($s:ident) => {{
use $crate::PointStyle::*;
$s
}};
}
#[doc(hidden)]
#[macro_export]
macro_rules! __line_style {
("-") => {
$crate::LineStyle::Simple
};
("--") => {
$crate::LineStyle::Dashed
};
("->") => {
$crate::LineStyle::Arrow
};
("_>") => {
$crate::LineStyle::InsideHarpoonCCW
};
("<_") => {
$crate::LineStyle::InsideHarpoonCW
};
($s:literal) => {
panic!(concat!("unknown line style ", $s))
};
($s:expr) => {{
use $crate::LineStyle::*;
$s
}};
}
#[doc(hidden)]
#[macro_export]
macro_rules! __alignment {
("<") => {
$crate::TextAlignment::Left
};
(">") => {
$crate::TextAlignment::Right
};
(".") => {
$crate::TextAlignment::Center
};
("x") => {
$crate::TextAlignment::Flexible
};
($a:literal) => {
compile_error!(concat!("unknown text alignment ", $a))
};
($a:expr) => {{
use $crate::TextAlignment::*;
$a
}};
}
#[doc(hidden)]
#[macro_export]
macro_rules! __color {
($hex:literal) => {
$crate::Color::Hex($hex)
};
($name:expr) => {{
use $crate::Color::*;
$name
}};
}