diff --git a/src/variable_list.rs b/src/variable_list.rs index d05ef37..1b4cc37 100644 --- a/src/variable_list.rs +++ b/src/variable_list.rs @@ -106,6 +106,17 @@ impl VariableList { } } + /// Creates a full list with the given element repeated. + pub fn repeat_full(elem: T) -> Self + where + T: Clone, + { + Self { + vec: vec![elem; N::to_usize()], + _phantom: PhantomData, + } + } + /// Returns the number of values presently in `self`. pub fn len(&self) -> usize { self.vec.len() @@ -386,6 +397,13 @@ mod test { assert!(fixed.is_ok()); } + #[test] + fn repeat_full() { + let manual_list = VariableList::::new(vec![42; 5]).unwrap(); + let repeat_list = VariableList::::repeat_full(42); + assert_eq!(manual_list, repeat_list); + } + #[test] fn indexing() { let vec = vec![1, 2];