1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use rand::{self, Rng}; /// The identifier allocation strategy to use at a specified depth. #[derive(Clone, PartialEq)] pub enum LSEQStrategy { /// Generate identifiers by adding a value to the previous digit. AddFromLeft, /// Generate identifiers by subtracting a value to the next digit. SubtractFromRight, } impl LSEQStrategy { pub fn random() -> LSEQStrategy { let mut rng = rand::thread_rng(); rng .choose(&[LSEQStrategy::AddFromLeft, LSEQStrategy::SubtractFromRight]) .unwrap() .clone() } }