brasilapi_client/
commons.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize)]
4#[serde(deny_unknown_fields)]
5#[serde(untagged)]
6pub enum EmptyOption<T> {
7 Some(T),
8 None {},
9}
10
11impl<T> From<EmptyOption<T>> for Option<T> {
14 fn from(empty_option: EmptyOption<T>) -> Option<T> {
15 match empty_option {
16 EmptyOption::Some(option) => Some(option),
17 EmptyOption::None {} => None,
18 }
19 }
20}
21
22impl<T> From<Option<T>> for EmptyOption<T> {
23 fn from(option: Option<T>) -> EmptyOption<T> {
24 match option {
25 Some(option) => EmptyOption::Some(option),
26 None {} => EmptyOption::None {},
27 }
28 }
29}
30
31impl<T> EmptyOption<T> {
32 pub fn into_option(self) -> Option<T> {
33 self.into()
34 }
35 pub fn as_option(&self) -> Option<&T> {
36 match self {
37 EmptyOption::Some(option) => Some(option),
38 EmptyOption::None {} => None,
39 }
40 }
41}