1use serde::Serialize;
5use serde::ser::Serializer;
6
7pub use std::result::Result as StdResult;
8
9pub type Result<T, E = Error> = StdResult<T, E>;
10pub type AnyResult<T> = anyhow::Result<T>;
11
12#[derive(Debug, thiserror::Error)]
13pub enum Error {
14 #[error(transparent)]
15 PasswordHash(#[from] argon2::password_hash::Error),
16 #[error(transparent)]
17 Phc(#[from] argon2::password_hash::phc::Error),
18 #[error(transparent)]
19 Unknown(#[from] anyhow::Error),
20}
21
22impl Serialize for Error {
23 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
24 where
25 S: Serializer,
26 {
27 serializer.serialize_str(self.to_string().as_str())
28 }
29}