diff -r c571d4b8879c -r 8f093b1b18bc rust/vec2d/src/lib.rs --- a/rust/vec2d/src/lib.rs Wed Feb 01 11:19:45 2023 +0100 +++ b/rust/vec2d/src/lib.rs Thu Feb 02 08:41:31 2023 +0100 @@ -143,6 +143,17 @@ } } +impl Vec2D { + pub fn from_iter>(iter: I, size: &Size) -> Option> { + let data: Vec = iter.into_iter().collect(); + if size.width * size.height == data.len() { + Some(Vec2D { data, size: *size }) + } else { + None + } + } +} + #[cfg(test)] mod tests { use super::*;