1#[macro_export]
21macro_rules! clear {
22 (vlogger: $vlogger:expr, $surface:expr) => {
24 $crate::__private_api::clear(
25 $crate::__vlog_vlogger!($vlogger),
26 $crate::__private_api::module_path!(),
27 $surface,
28 )
29 };
30
31 (vlogger: $vlogger:expr, target: $target:expr, $surface:expr) => {
33 $crate::__private_api::clear($crate::__vlog_vlogger!($vlogger), $target, $surface)
34 };
35
36 (target: $target:expr, $surface:expr) => {
38 $crate::__private_api::clear(
39 $crate::__vlog_vlogger!(__vlog_global_vlogger),
40 $target,
41 $surface,
42 )
43 };
44
45 ($surface:expr) => {
47 $crate::__private_api::clear(
48 $crate::__vlog_vlogger!(__vlog_global_vlogger),
49 $crate::__private_api::module_path!(),
50 $surface,
51 )
52 };
53}
54
55#[macro_export]
69macro_rules! message {
70 (vlogger: $vlogger:expr, target: $target:expr, $surface:expr, $($arg:tt)+) => ({
72 $crate::__message!(
73 $crate::__vlog_vlogger!($vlogger),
74 $surface,
75 &($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
76 $($arg)+
77 )
78 });
79
80 (vlogger: $vlogger:expr, $surface:expr, $($arg:tt)+) => ({
82 $crate::__message!(
83 $crate::__vlog_vlogger!($vlogger),
84 $surface,
85 &($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
86 $($arg)+
87 )
88 });
89
90 (target: $target:expr, $surface:expr, $($arg:tt)+) => ({
92 $crate::__message!(
93 $crate::__vlog_vlogger!(__vlog_global_vlogger),
94 $surface,
95 &($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
96 $($arg)+
97 )
98 });
99
100 ($surface:expr, $($arg:tt)+) => (
102 $crate::__message!(
103 $crate::__vlog_vlogger!(__vlog_global_vlogger),
104 $surface,
105 &($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
106 $($arg)+
107 )
108 )
109}
110
111#[macro_export]
125macro_rules! point {
126 (vlogger: $vlogger:expr, target: $target:expr, $surface:expr, $($arg:tt)+) => ({
128 $crate::__point!(
129 $crate::__vlog_vlogger!($vlogger),
130 $surface,
131 &($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
132 $($arg)+
133 )
134 });
135
136 (vlogger: $vlogger:expr, $surface:expr, $($arg:tt)+) => ({
138 $crate::__point!(
139 $crate::__vlog_vlogger!($vlogger),
140 $surface,
141 &($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
142 $($arg)+
143 )
144 });
145
146 (target: $target:expr, $surface:expr, $($arg:tt)+) => ({
148 $crate::__point!(
149 $crate::__vlog_vlogger!(__vlog_global_vlogger),
150 $surface,
151 &($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
152 $($arg)+
153 )
154 });
155
156 ($surface:expr, $($arg:tt)+) => (
158 $crate::__point!(
159 $crate::__vlog_vlogger!(__vlog_global_vlogger),
160 $surface,
161 &($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
162 $($arg)+
163 )
164 )
165}
166
167#[macro_export]
180macro_rules! label {
181 (vlogger: $vlogger:expr, target: $target:expr, $surface:expr, $($arg:tt)+) => ({
183 $crate::__label!(
184 $crate::__vlog_vlogger!($vlogger),
185 $surface,
186 &($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
187 $($arg)+
188 )
189 });
190
191 (vlogger: $vlogger:expr, $surface:expr, $($arg:tt)+) => ({
193 $crate::__label!(
194 $crate::__vlog_vlogger!($vlogger),
195 $surface,
196 &($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
197 $($arg)+
198 )
199 });
200
201 (target: $target:expr, $surface:expr, $($arg:tt)+) => ({
203 $crate::__label!(
204 $crate::__vlog_vlogger!(__vlog_global_vlogger),
205 $surface,
206 &($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
207 $($arg)+
208 )
209 });
210
211 ($surface:expr, $($arg:tt)+) => (
213 $crate::__label!(
214 $crate::__vlog_vlogger!(__vlog_global_vlogger),
215 $surface,
216 &($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
217 $($arg)+
218 )
219 )
220}
221
222#[macro_export]
244macro_rules! polyline {
245 (vlogger: $vlogger:expr, target: $target:expr, $surface:expr, $($arg:tt)+) => ({
247 $crate::__line!(
248 $crate::__vlog_vlogger!($vlogger),
249 $surface,
250 &($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
251 $($arg)+
252 )
253 });
254
255 (vlogger: $vlogger:expr, $surface:expr, $($arg:tt)+) => ({
257 $crate::__line!(
258 $crate::__vlog_vlogger!($vlogger),
259 $surface,
260 &($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
261 $($arg)+
262 )
263 });
264
265 (target: $target:expr, $surface:expr, $($arg:tt)+) => ({
267 $crate::__line!(
268 $crate::__vlog_vlogger!(__vlog_global_vlogger),
269 $surface,
270 &($target, $crate::__private_api::module_path!(), $crate::__private_api::loc()),
271 $($arg)+
272 )
273 });
274
275 ($surface:expr, $($arg:tt)+) => (
277 $crate::__line!(
278 $crate::__vlog_vlogger!(__vlog_global_vlogger),
279 $surface,
280 &($crate::__private_api::module_path!(), $crate::__private_api::module_path!(), $crate::__private_api::loc()),
281 $($arg)+
282 )
283 )
284}
285
286#[doc(hidden)]
287#[macro_export]
288#[clippy::format_args]
289macro_rules! __message {
290 ($vlogger:expr, $surface:expr, $loc:expr, color: $color:tt, $($arg:tt)+) => {
291 $crate::__private_api::vlog_message(
292 $vlogger,
293 $crate::__private_api::format_args!($($arg)+),
294 $crate::__color!($color),
295 $surface,
296 $loc
297 )
298 };
299 ($vlogger:expr, $surface:expr, $loc:expr, $($arg:tt)+) => {
300 $crate::__private_api::vlog_message(
301 $vlogger,
302 $crate::__private_api::format_args!($($arg)+),
303 $crate::__color!(Base),
304 $surface,
305 $loc
306 )
307 };
308}
309
310#[doc(hidden)]
311#[macro_export]
312#[clippy::format_args]
313macro_rules! __point {
314 ($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, $size:expr, $color:tt, $style:tt, $($arg:tt)+) => {
315 $crate::__private_api::vlog_point(
316 $vlogger,
317 $crate::__private_api::format_args!($($arg)+),
318 $pos,
319 $size,
320 $crate::__color!($color),
321 $crate::__point_style!($style),
322 $surface,
323 $loc
324 )
325 };
326 ($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, $size:expr, $color:tt, $style:tt) => {
327 $crate::__private_api::vlog_point(
328 $vlogger,
329 $crate::__private_api::format_args!(""),
330 $pos,
331 $size,
332 $crate::__color!($color),
333 $crate::__point_style!($style),
334 $surface,
335 $loc
336 )
337 };
338 ($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, $size:expr, $color:tt) => {
339 $crate::__private_api::vlog_point(
340 $vlogger,
341 $crate::__private_api::format_args!(""),
342 $pos,
343 $size,
344 $crate::__color!($color),
345 $crate::__point_style!("o"),
346 $surface,
347 $loc
348 )
349 };
350}
351
352#[doc(hidden)]
353#[macro_export]
354#[clippy::format_args]
355macro_rules! __label {
356 ($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, ($size:expr, $color:tt, $align:tt), $($arg:tt)+) => {
357 $crate::__private_api::vlog_label(
358 $vlogger,
359 $crate::__private_api::format_args!($($arg)+),
360 $pos,
361 $size,
362 $crate::__color!($color),
363 $crate::__alignment!($align),
364 $surface,
365 $loc
366 )
367 };
368 ($vlogger:expr, $surface:expr, $loc:expr, $pos:expr, $($arg:tt)+) => {
369 $crate::__private_api::vlog_label(
370 $vlogger,
371 $crate::__private_api::format_args!($($arg)+),
372 $pos,
373 12.0, $crate::__color!(Base),
375 $crate::__alignment!("x"),
376 $surface,
377 $loc
378 )
379 };
380}
381
382#[doc(hidden)]
383#[macro_export]
384#[clippy::format_args]
385macro_rules! __line {
386 ($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $pos2:expr), $size:expr, $color:tt, $style:tt, $($arg:tt)+) => {
387 $crate::__private_api::vlog_line(
388 $vlogger,
389 $crate::__private_api::format_args!($($arg)+),
390 $pos1,
391 $pos2,
392 $size,
393 $crate::__color!($color),
394 $crate::__line_style!($style),
395 $surface,
396 $loc
397 )
398 };
399 ($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $pos2:expr), $size:expr, $color:tt) => {
400 $crate::__line!($vlogger, $surface, $loc, ($pos1, $pos2), $size, $color, "-")
401 };
402 ($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $($pos2:expr),+), $size:expr, $color:tt, $style:tt) => {
403 let mut last = $pos1;
404 $(
405 let next = $pos2;
406 $crate::__private_api::vlog_line(
407 $vlogger,
408 $crate::__private_api::format_args!(""),
409 last,
410 next.clone(),
411 $size,
412 $crate::__color!($color),
413 $crate::__line_style!($style),
414 $surface,
415 $loc
416 );
417 last = next;
418 )+
419 };
420 ($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $($pos2:expr),+), $size:expr, $color:tt) => {
421 $crate::__line!($vlogger, $surface, $loc, ($pos1, $($pos2),+), $size, $color, "-")
422 };
423 ($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $($pos2:expr,)+), $size:expr, $color:tt, $style:tt) => {
424 let mut last = $pos1;
425 let first = last.clone();
426 $(
427 let next = $pos2;
428 $crate::__private_api::vlog_line(
429 $vlogger,
430 $crate::__private_api::format_args!(""),
431 last,
432 next.clone(),
433 $size,
434 $crate::__color!($color),
435 $crate::__line_style!($style),
436 $surface,
437 $loc
438 );
439 last = next;
440 )+
441 $crate::__private_api::vlog_line(
442 $vlogger,
443 $crate::__private_api::format_args!(""),
444 last,
445 first,
446 $size,
447 $crate::__color!($color),
448 $crate::__line_style!($style),
449 $surface,
450 $loc
451 );
452 };
453 ($vlogger:expr, $surface:expr, $loc:expr, ($pos1:expr, $($pos2:expr,)+), $size:expr, $color:tt) => {
454 $crate::__line!($vlogger, $surface, $loc, ($pos1, $($pos2,)+), $size, $color, "-")
455 };
456}
457
458#[macro_export]
488macro_rules! vlog_enabled {
489 (vlogger: $vlogger:expr, target: $target:expr, $surface:expr) => {{
491 $crate::__private_api::enabled($crate::__vlog_vlogger!($vlogger), $surface, $target)
492 }};
493
494 (vlogger: $vlogger:expr, $surface:expr) => {{
496 $crate::__private_api::enabled(
497 $crate::__vlog_vlogger!($vlogger),
498 $surface,
499 $crate::__private_api::module_path!(),
500 )
501 }};
502
503 (target: $target:expr, $surface:expr) => {{
505 $crate::__private_api::enabled(
506 $crate::__vlog_vlogger!(__vlog_global_vlogger),
507 $surface,
508 $target,
509 )
510 }};
511
512 ($surface:expr) => {{
514 $crate::__private_api::enabled(
515 $crate::__vlog_vlogger!(__vlog_global_vlogger),
516 $surface,
517 $crate::__private_api::module_path!(),
518 )
519 }};
520}
521
522#[doc(hidden)]
525#[macro_export]
526macro_rules! __vlog_vlogger {
527 (__vlog_global_vlogger) => {{
528 $crate::__private_api::GlobalVLogger
529 }};
530
531 ($vlogger:expr) => {{
532 &($vlogger)
533 }};
534}
535
536#[doc(hidden)]
537#[macro_export]
538macro_rules! __point_style {
539 ("O") => {
540 $crate::PointStyle::FilledCircle
541 };
542 ("-O") => {
543 $crate::PointStyle::Circle
544 };
545 ("--O") => {
546 $crate::PointStyle::DashedCircle
547 };
548 ("o") => {
549 $crate::PointStyle::Point
550 };
551 ("-o") => {
552 $crate::PointStyle::PointOutline
553 };
554 ("s") => {
555 $crate::PointStyle::PointSquare
556 };
557 ("-s") => {
558 $crate::PointStyle::PointSquareOutline
559 };
560 ("x") => {
561 $crate::PointStyle::PointCross
562 };
563 ("d") => {
564 $crate::PointStyle::PointDiamond
565 };
566 ("-d") => {
567 $crate::PointStyle::PointDiamondOutline
568 };
569 ($s:literal) => {
570 compile_error!(concat!("unknown point style ", $s))
571 };
572 ($s:ident) => {{
573 use $crate::PointStyle::*;
574 $s
575 }};
576}
577
578#[doc(hidden)]
579#[macro_export]
580macro_rules! __line_style {
581 ("-") => {
582 $crate::LineStyle::Simple
583 };
584 ("--") => {
585 $crate::LineStyle::Dashed
586 };
587 ("->") => {
588 $crate::LineStyle::Arrow
589 };
590 ("_>") => {
591 $crate::LineStyle::InsideHarpoonCCW
592 };
593 ("<_") => {
594 $crate::LineStyle::InsideHarpoonCW
595 };
596 ($s:literal) => {
597 panic!(concat!("unknown line style ", $s))
598 };
599 ($s:expr) => {{
600 use $crate::LineStyle::*;
601 $s
602 }};
603}
604
605#[doc(hidden)]
606#[macro_export]
607macro_rules! __alignment {
608 ("<") => {
609 $crate::TextAlignment::Left
610 };
611 (">") => {
612 $crate::TextAlignment::Right
613 };
614 (".") => {
615 $crate::TextAlignment::Center
616 };
617 ("x") => {
618 $crate::TextAlignment::Flexible
619 };
620 ($a:literal) => {
621 compile_error!(concat!("unknown text alignment ", $a))
622 };
623 ($a:expr) => {{
624 use $crate::TextAlignment::*;
625 $a
626 }};
627}
628
629#[doc(hidden)]
630#[macro_export]
631macro_rules! __color {
632 ($hex:literal) => {
633 $crate::Color::Hex($hex)
634 };
635 ($name:expr) => {{
636 use $crate::Color::*;
637 $name
638 }};
639}