pub enum ReplicationMode { None, TwoWay, ThreeWay, } impl ReplicationMode { pub fn parse(v: &str) -> Option { match v { "none" | "1" => Some(Self::None), "2" => Some(Self::TwoWay), "3" => Some(Self::ThreeWay), _ => None, } } pub fn control_write_max_faults(&self) -> usize { match self { Self::None => 0, _ => 1, } } pub fn replication_factor(&self) -> usize { match self { Self::None => 1, Self::TwoWay => 2, Self::ThreeWay => 3, } } pub fn read_quorum(&self) -> usize { match self { Self::None => 1, Self::TwoWay => 1, Self::ThreeWay => 2, } } pub fn write_quorum(&self) -> usize { match self { Self::None => 1, Self::TwoWay => 2, Self::ThreeWay => 2, } } }