diff options
Diffstat (limited to 'crates/fparkan-test-support')
| -rw-r--r-- | crates/fparkan-test-support/Cargo.toml | 12 | ||||
| -rw-r--r-- | crates/fparkan-test-support/src/lib.rs | 25 |
2 files changed, 37 insertions, 0 deletions
diff --git a/crates/fparkan-test-support/Cargo.toml b/crates/fparkan-test-support/Cargo.toml new file mode 100644 index 0000000..56a079f --- /dev/null +++ b/crates/fparkan-test-support/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "fparkan-test-support" +version.workspace = true +edition.workspace = true +license.workspace = true +repository.workspace = true + +[dependencies] +fparkan-render = { path = "../fparkan-render" } + +[lints] +workspace = true diff --git a/crates/fparkan-test-support/src/lib.rs b/crates/fparkan-test-support/src/lib.rs new file mode 100644 index 0000000..cb4f552 --- /dev/null +++ b/crates/fparkan-test-support/src/lib.rs @@ -0,0 +1,25 @@ +#![forbid(unsafe_code)] +//! Dev-only synthetic builders and fake ports. + +use fparkan_render::{FrameOutput, RenderBackend, RenderCommandList, RenderError}; + +/// Fake clock. +#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] +pub struct FakeClock { + /// Current tick. + pub tick: u64, +} + +/// Recording backend. +#[derive(Clone, Debug, Default)] +pub struct RecordingRenderBackend { + /// Recorded command lists. + pub captures: Vec<RenderCommandList>, +} + +impl RenderBackend for RecordingRenderBackend { + fn execute(&mut self, commands: &RenderCommandList) -> Result<FrameOutput, RenderError> { + self.captures.push(commands.clone()); + Ok(FrameOutput) + } +} |
