openapiv3/
variant_or.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
4#[serde(untagged)]
5pub enum VariantOrUnknown<T> {
6    Item(T),
7    Unknown(String),
8}
9
10#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
11#[serde(untagged)]
12pub enum VariantOrUnknownOrEmpty<T> {
13    Item(T),
14    Unknown(String),
15    Empty,
16}
17
18impl<T> VariantOrUnknownOrEmpty<T> {
19    pub fn is_empty(&self) -> bool {
20        match self {
21            VariantOrUnknownOrEmpty::Empty => true,
22            _ => false,
23        }
24    }
25}
26
27impl<T> Default for VariantOrUnknownOrEmpty<T> {
28    fn default() -> Self {
29        VariantOrUnknownOrEmpty::Empty
30    }
31}