#[cfg(test)] mod tests; use super::super::ControllerType; #[derive(Debug, PartialEq)] pub enum AccessControllerType { Help, GetUsers, SetUsers(Option>), GetRoomLocalAgentManagers, SetRoomLocalAgentManagers(Option>), } pub fn determine_controller(text: &str) -> ControllerType { if text.starts_with("users") { return ControllerType::Access(AccessControllerType::GetUsers); } if let Some(patterns_string) = text.strip_prefix("set-users") { let patterns_string = patterns_string.trim().to_owned(); let patterns_option = if patterns_string.is_empty() { None } else { let patterns_vector = patterns_string .split(" ") .map(|s| s.to_string()) .collect::>(); Some(patterns_vector) }; return ControllerType::Access(AccessControllerType::SetUsers(patterns_option)); } if text.starts_with("room-local-agent-managers") { return ControllerType::Access(AccessControllerType::GetRoomLocalAgentManagers); } if let Some(patterns_string) = text.strip_prefix("set-room-local-agent-managers") { let patterns_string = patterns_string.trim().to_owned(); let patterns_option = if patterns_string.is_empty() { None } else { let patterns_vector = patterns_string .split(" ") .map(|s| s.to_string()) .collect::>(); Some(patterns_vector) }; return ControllerType::Access(AccessControllerType::SetRoomLocalAgentManagers( patterns_option, )); } ControllerType::Access(AccessControllerType::Help) }