summaryrefslogtreecommitdiffstats
path: root/src/frontier.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontier.rs')
-rw-r--r--src/frontier.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/frontier.rs b/src/frontier.rs
new file mode 100644
index 0000000..2c6f43a
--- /dev/null
+++ b/src/frontier.rs
@@ -0,0 +1,18 @@
+//! Frontiers on which to place pixels.
+
+use crate::color::Rgb8;
+
+/// A frontier of pixels.
+pub trait Frontier {
+ /// The width of the image.
+ fn width(&self) -> u32;
+
+ /// The height of the image.
+ fn height(&self) -> u32;
+
+ /// The number of pixels currently on the frontier.
+ fn len(&self) -> usize;
+
+ /// Place the given color on the frontier, and return its position.
+ fn place(&mut self, rgb8: Rgb8) -> Option<(u32, u32)>;
+}