summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/frontier.rs18
-rw-r--r--src/main.rs1
2 files changed, 19 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)>;
+}
diff --git a/src/main.rs b/src/main.rs
index a59a0cf..07e138a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,4 +1,5 @@
pub mod color;
+pub mod frontier;
pub mod hilbert;
pub mod metric;