ms_autodiscover/types/
response.rs1#[cfg(feature = "pox")]
2use super::pox::{self, Response as PoxResponse};
3
4pub enum AutodiscoverResult {
5 Ok(AutodiscoverResponse),
6 Redirect(RedirectType),
7 Error(Error),
8}
9
10impl AutodiscoverResult {
11 pub fn error<M: Into<String>>(message: M) -> Self {
12 AutodiscoverResult::Error(Error::new(message))
13 }
14}
15
16pub enum RedirectType {
17 Url(String),
18 Email(String),
19}
20
21pub struct Error {
22 message: String,
23}
24
25#[cfg(feature = "pox")]
26impl From<&pox::Error> for Error {
27 fn from(error: &pox::Error) -> Self {
28 Self::new(format!("Code {}, {}", error.code(), error.message()))
29 }
30}
31
32impl Error {
33 pub fn new<M: Into<String>>(message: M) -> Self {
34 Self {
35 message: message.into(),
36 }
37 }
38
39 pub fn message(&self) -> &str {
40 self.message.as_ref()
41 }
42}
43
44#[derive(Debug)]
45pub enum AutodiscoverResponse {
46 #[cfg(feature = "pox")]
47 Pox(PoxResponse),
48}