notebook_types/v0/
diagram_judgment.rs1use serde::{Deserialize, Serialize};
2use tsify::Tsify;
3use uuid::Uuid;
4
5use super::model::{Mor, Ob};
6use super::theory::{MorType, ObType};
7
8#[derive(Debug, PartialEq, Eq, Serialize, Deserialize, Tsify)]
10#[tsify(into_wasm_abi, from_wasm_abi, missing_as_null)]
11pub struct DiagramObDecl {
12 pub name: String,
14
15 pub id: Uuid,
17
18 #[serde(rename = "obType")]
20 pub ob_type: ObType,
21
22 pub over: Option<Ob>,
24}
25
26#[derive(Debug, PartialEq, Eq, Serialize, Deserialize, Tsify)]
28#[tsify(into_wasm_abi, from_wasm_abi, missing_as_null)]
29pub struct DiagramMorDecl {
30 pub name: String,
32
33 pub id: Uuid,
35
36 #[serde(rename = "morType")]
38 pub mor_type: MorType,
39
40 pub over: Option<Mor>,
42
43 pub dom: Option<Ob>,
45
46 pub cod: Option<Ob>,
48}
49
50#[derive(Debug, PartialEq, Eq, Serialize, Deserialize, Tsify)]
52#[serde(tag = "tag")]
53#[tsify(into_wasm_abi, from_wasm_abi)]
54pub enum DiagramJudgment {
55 #[serde(rename = "object")]
56 Object(DiagramObDecl),
57 #[serde(rename = "morphism")]
58 Morphism(DiagramMorDecl),
59}