gitbundle_sdk/models/
rule_model.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct RuleModel {
17 #[serde(rename = "created")]
18 pub created: i64,
19 #[serde(rename = "created_by")]
20 pub created_by: i64,
21 #[serde(rename = "definition", deserialize_with = "Option::deserialize")]
22 pub definition: Option<serde_json::Value>,
23 #[serde(rename = "description")]
24 pub description: String,
25 #[serde(
26 rename = "group_id",
27 default,
28 with = "::serde_with::rust::double_option",
29 skip_serializing_if = "Option::is_none"
30 )]
31 pub group_id: Option<Option<i64>>,
32 #[serde(rename = "id")]
33 pub id: i64,
34 #[serde(rename = "name")]
35 pub name: String,
36 #[serde(rename = "pattern", deserialize_with = "Option::deserialize")]
37 pub pattern: Option<serde_json::Value>,
38 #[serde(
39 rename = "repo_id",
40 default,
41 with = "::serde_with::rust::double_option",
42 skip_serializing_if = "Option::is_none"
43 )]
44 pub repo_id: Option<Option<i64>>,
45 #[serde(rename = "state")]
46 pub state: models::RuleState,
47 #[serde(rename = "type")]
48 pub r#type: models::RuleType,
49 #[serde(rename = "updated")]
50 pub updated: i64,
51 #[serde(rename = "version")]
52 pub version: i64,
53}
54
55impl RuleModel {
56 pub fn new(
57 created: i64,
58 created_by: i64,
59 definition: Option<serde_json::Value>,
60 description: String,
61 id: i64,
62 name: String,
63 pattern: Option<serde_json::Value>,
64 state: models::RuleState,
65 r#type: models::RuleType,
66 updated: i64,
67 version: i64,
68 ) -> RuleModel {
69 RuleModel {
70 created,
71 created_by,
72 definition,
73 description,
74 group_id: None,
75 id,
76 name,
77 pattern,
78 repo_id: None,
79 state,
80 r#type,
81 updated,
82 version,
83 }
84 }
85}