| 57 | |
| 58 | impl ProviderScope { |
| 59 | pub fn parse_optional(value: Option<&str>) -> std::result::Result<Self, String> { |
| 60 | match value.map(str::trim).filter(|provider| !provider.is_empty()) { |
| 61 | None | Some("all") => Ok(Self::All), |
| 62 | Some(provider) => SessionProvider::parse(provider) |
| 63 | .map(Self::One) |
| 64 | .ok_or_else(|| { |
| 65 | format!( |
| 66 | "unknown session provider '{provider}' (expected {EXPECTED_MESSAGE_SEARCH_PROVIDER})" |
| 67 | ) |
| 68 | }), |
| 69 | } |
| 70 | } |
| 71 | |
| 72 | pub const fn provider(self) -> Option<SessionProvider> { |
| 73 | match self { |