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}