thruput_xdr/
auth_token.rs1#![allow(non_camel_case_types)]
7#![allow(non_snake_case)]
8#![allow(non_upper_case_globals)]
9#![allow(unused_imports)]
10#![allow(dead_code)]
11#![allow(unused_variables)]
12#![allow(clippy::unnecessary_cast)]
13
14use crate::*;
15use core::option::Option;
16use core::ops::{Deref, DerefMut};
17
18#[cfg(feature = "std")]
19use std::io::{Read, Write};
20#[cfg(feature = "xdrs")]
21use xdrs::*;
22
23
24#[cfg(feature = "serde")]
25use ::serde::{{Serialize, Deserialize}};
26
27
28
29pub const kAuthTokenMaxLen : u32 = 256;
31
32pub const kAuthTokenMaxDepth : u32 = 4;
36
37pub const kAuthTokenMaxChildNodes : u32 = 4;
39
40#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
42#[cfg_attr(feature = "xdrs", derive(ReadXDR, WriteXDR, ConstXDRSize))]
43#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
44#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
45#[repr(transparent)]
46#[cfg_attr(feature = "serde", serde(transparent))]
47pub struct AuthTokenPayload {
48 inner: BytesM<kAuthTokenMaxLen>,
49}
50impl From<BytesM<kAuthTokenMaxLen>> for AuthTokenPayload {
51 fn from(_inner: BytesM<kAuthTokenMaxLen>) -> Self {
52 Self { inner: _inner }
53 }
54}
55impl AuthTokenPayload {
56 pub fn into_inner(self) -> BytesM<kAuthTokenMaxLen> {
57 self.inner
58 }
59 pub const fn new(_inner: BytesM<kAuthTokenMaxLen>) -> Self {
60 Self { inner: _inner }
61 }
62}
63
64impl Deref for AuthTokenPayload {
65 type Target = BytesM<kAuthTokenMaxLen>;
66
67 fn deref(&self) -> &Self::Target {
68 &self.inner
69 }
70}
71impl DerefMut for AuthTokenPayload {
72 fn deref_mut(&mut self) -> &mut Self::Target {
73 &mut self.inner
74 }
75}
76
77#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
78#[cfg_attr(feature = "xdrs", derive(ReadXDR, WriteXDR, ConstXDRSize))]
79#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
80#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
81#[repr(C)]
82pub struct AuthTokenNode {
83 pub consumer_address: ContractAddress,
84 pub payload: AuthTokenPayload,
85 pub child_nodes: VecM<AuthTokenNode, kAuthTokenMaxChildNodes>,
86}
87
88#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
89#[cfg_attr(feature = "xdrs", derive(ReadXDR, WriteXDR, ConstXDRSize))]
90#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
91#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
92#[repr(C)]
93pub struct AuthToken {
94 pub mint_address: ContractAddress,
95 pub expiry_height: BlockHeight,
96 pub root_node: AuthTokenNode,
97}
98
99
100