lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

types.rs (1152B)


      1 #[cfg(not(feature = "std"))]
      2 use alloc::{string::String, vec::Vec};
      3 
      4 use serde::{Deserialize, Serialize};
      5 
      6 pub const RADROOTS_REPLICA_TRANSFER_VERSION: u32 = 2;
      7 
      8 #[derive(Clone, Debug, Serialize, Deserialize)]
      9 pub struct RadrootsReplicaEventDraft {
     10     pub kind: u32,
     11     pub author: String,
     12     pub content: String,
     13     pub tags: Vec<Vec<String>>,
     14 }
     15 
     16 #[derive(Clone, Debug, Serialize, Deserialize)]
     17 pub struct RadrootsReplicaSyncBundle {
     18     pub version: u32,
     19     pub events: Vec<RadrootsReplicaEventDraft>,
     20 }
     21 
     22 #[derive(Clone, Debug, Serialize, Deserialize)]
     23 #[serde(deny_unknown_fields)]
     24 pub struct RadrootsReplicaFarmSelector {
     25     pub id: Option<String>,
     26     pub d_tag: Option<String>,
     27     pub pubkey: Option<String>,
     28 }
     29 
     30 #[derive(Clone, Debug, Serialize, Deserialize)]
     31 #[serde(deny_unknown_fields)]
     32 pub struct RadrootsReplicaSyncOptions {
     33     pub include_list_sets: Option<bool>,
     34     pub include_membership_claims: Option<bool>,
     35 }
     36 
     37 #[derive(Clone, Debug, Serialize, Deserialize)]
     38 #[serde(deny_unknown_fields)]
     39 pub struct RadrootsReplicaSyncRequest {
     40     pub farm: RadrootsReplicaFarmSelector,
     41     pub options: Option<RadrootsReplicaSyncOptions>,
     42 }