pub mod diff;
#[doc(hidden)]
#[macro_export]
macro_rules! __THIS_IS_NOT_PUBLIC_DO_NOT_CALL_static_text {
($text:expr) => {
$crate::DrawCommand::TextUnderCursor($text.into())
};
}
#[doc(inline)]
pub use __THIS_IS_NOT_PUBLIC_DO_NOT_CALL_static_text as static_text;
#[doc(hidden)]
#[macro_export]
macro_rules! __THIS_IS_NOT_PUBLIC_DO_NOT_CALL_assert_renders_many {
($expected:expr, $component:expr) => {{
let mut ctx = $crate::test::fake_render_ctx();
let ui = $crate::test::make_test_ui!(&mut $component);
let actual = ui
.render_commands(&mut ctx)
.await?
.iter()
.flat_map(|(_key, cmds)| cmds.clone())
.collect();
let diff = $crate::test::diff::DrawCommandDiff::new($expected, actual);
let diff: $crate::test::diff::VisualDiff = diff.into_visual_diff().await?;
if diff.is_different() {
diff.render().await?;
panic!();
}
}};
}
#[doc(inline)]
pub use __THIS_IS_NOT_PUBLIC_DO_NOT_CALL_assert_renders_many as assert_renders_many;
#[doc(hidden)]
#[macro_export]
macro_rules! __THIS_IS_NOT_PUBLIC_DO_NOT_CALL_assert_renders_one {
($expected:expr, $component:expr) => {{
$crate::test::assert_renders_many!(vec![$expected], $component);
}};
}
#[doc(inline)]
pub use __THIS_IS_NOT_PUBLIC_DO_NOT_CALL_assert_renders_one as assert_renders_one;
#[doc(hidden)]
#[macro_export]
macro_rules! __THIS_IS_NOT_PUBLIC_DO_NOT_CALL_make_test_ui {
($root:expr) => {{
use $crate::input::TerminalInput;
use $crate::render::MemoryRenderer;
use $crate::MUI;
let renderer = MemoryRenderer::new(128, 128);
let input = TerminalInput::new().await?;
let ui = MUI::new($root, Box::new(renderer), input)?;
ui
}};
($root:expr, $size:expr) => {{
use $crate::input::TerminalInput;
use $crate::render::MemoryRenderer;
use $crate::MUI;
let renderer = MemoryRenderer::new($size, $size);
let input = TerminalInput::new().await?;
let ui = MUI::new($root, Box::new(renderer), input)?;
ui
}};
($root:expr, $w:expr, $h:expr) => {{
use $crate::input::TerminalInput;
use $crate::render::MemoryRenderer;
use $crate::MUI;
let renderer = MemoryRenderer::new($w, $h);
let input = TerminalInput::new().await?;
let ui = MUI::new($root, Box::new(renderer), input)?;
ui
}};
}
#[doc(inline)]
pub use __THIS_IS_NOT_PUBLIC_DO_NOT_CALL_make_test_ui as make_test_ui;
#[doc(hidden)]
pub fn fake_render_ctx() -> crate::component::RenderContext {
crate::component::RenderContext {
last_frame_time: None,
frame_counter: 0,
fps: 0f64,
effective_fps: 0f64,
cursor: (0, 0),
dimensions: (0, 0),
focus: 0,
}
}