diff --git a/src/types/passport_element_error.rs b/src/types/passport_element_error.rs index 09034b60..33325173 100644 --- a/src/types/passport_element_error.rs +++ b/src/types/passport_element_error.rs @@ -14,7 +14,28 @@ pub struct PassportElementError { kind: PassportElementErrorKind, } -// TODO: use different types? +impl PassportElementError { + pub fn new(message: S, kind: PassportElementErrorKind) -> Self + where + S: Into, + { + Self { message: message.into(), kind } + } + + pub fn message(mut self, val: S) -> Self + where + S: Into, + { + self.message = val.into(); + self + } + + pub fn kind(mut self, val: PassportElementErrorKind) -> Self { + self.kind = val; + self + } +} + #[serde(tag = "source")] #[derive(Clone, Debug, Hash, Eq, PartialEq, Serialize, Deserialize)] #[non_exhaustive]