mindcontrol_types/
signature.rs1use super::var::VarV1;
2use genotype_json_types::GtjAny;
3use litty::literal;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
8pub struct SignatureV1 {
9 pub input: Vec<SignatureInputV1>,
11 pub output: SignatureOutputV1,
13 pub n: u8,
15}
16
17#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
18pub struct SignatureInputFieldsV1 {
19 pub input: Vec<SignatureInputV1>,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
25pub struct SignatureInputV1 {
26 pub r#type: SignatureInputV1Type,
28 pub var: VarV1,
30}
31
32#[literal("string")]
33pub struct SignatureInputV1TypeString;
34
35#[literal("number")]
36pub struct SignatureInputV1TypeNumber;
37
38#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum SignatureInputV1Type {
41 String(SignatureInputV1TypeString),
42 Number(SignatureInputV1TypeNumber),
43}
44
45#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum SignatureOutputV1 {
49 SignatureOutputStringV1(SignatureOutputStringV1),
50 SignatureOutputJsonV1(SignatureOutputJsonV1),
51}
52
53#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
55pub struct SignatureOutputBaseV1 {
56 pub var: VarV1,
58}
59
60#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
62pub struct SignatureOutputStringV1 {
63 pub var: VarV1,
65 pub r#type: SignatureOutputStringV1TypeString,
67}
68
69#[literal("string")]
70pub struct SignatureOutputStringV1TypeString;
71
72#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
74pub struct SignatureOutputJsonV1 {
75 pub var: VarV1,
77 pub r#type: SignatureOutputJsonV1TypeJson,
79 pub descriptor: GtjAny,
81}
82
83#[literal("json")]
84pub struct SignatureOutputJsonV1TypeJson;