clean_base/dtos/
children.rs1use serde::{Deserialize, Serialize};
2use std::fmt::{Display, Formatter, Result as FmtResult};
3use utoipa::ToSchema;
4
5#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, ToSchema)]
10#[serde(rename_all = "camelCase")]
11pub enum Children<T, U> {
12 Records(Vec<T>),
13 Ids(Vec<U>),
14}
15
16impl<T, U> Display for Children<T, U>
17where
18 T: Display,
19 U: Display,
20{
21 fn fmt(&self, f: &mut Formatter) -> FmtResult {
22 match self {
23 Children::Records(_) => write!(f, "records"),
24 Children::Ids(_) => write!(f, "ids"),
25 }
26 }
27}
28
29#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, ToSchema)]
30#[serde(untagged, rename_all = "camelCase")]
31pub enum UntaggedChildren<T, U> {
32 Records(Vec<T>),
33 Ids(Vec<U>),
34}
35
36impl<T, U> Display for UntaggedChildren<T, U>
37where
38 T: Display,
39 U: Display,
40{
41 fn fmt(&self, f: &mut Formatter) -> FmtResult {
42 match self {
43 UntaggedChildren::Records(_) => write!(f, "records"),
44 UntaggedChildren::Ids(_) => write!(f, "ids"),
45 }
46 }
47}