houseflow_types/
lib.rs

1mod common;
2mod device;
3mod user;
4
5#[cfg(feature = "admin")]
6pub mod admin;
7
8#[cfg(feature = "auth")]
9pub mod auth;
10
11#[cfg(feature = "fulfillment")]
12pub mod fulfillment;
13
14#[cfg(feature = "lighthouse")]
15pub mod lighthouse;
16
17#[cfg(feature = "token")]
18pub mod token;
19
20pub use common::*;
21pub use device::*;
22pub use user::*;
23
24use serde::{Deserialize, Serialize};
25
26#[derive(Debug, Clone, Deserialize, Serialize)]
27#[serde(untagged, rename_all = "snake_case")]
28pub enum ResultUntagged<T, E> {
29    Ok(T),
30    Err(E),
31}
32
33#[derive(Debug, Clone, Deserialize, Serialize)]
34#[serde(tag = "status", rename_all = "snake_case")]
35pub enum ResultTagged<T, E> {
36    Ok(T),
37    Err(E),
38}
39
40impl<T, E> ResultTagged<T, E> {
41    pub fn into_result(self) -> Result<T, E> {
42        match self {
43            Self::Ok(v) => Ok(v),
44            Self::Err(v) => Err(v),
45        }
46    }
47}
48
49impl<T, E> ResultUntagged<T, E> {
50    pub fn into_result(self) -> Result<T, E> {
51        match self {
52            Self::Ok(v) => Ok(v),
53            Self::Err(v) => Err(v),
54        }
55    }
56}