luckperms_rs/models/
action.rs1use uuid::Uuid;
2
3#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct Action {
6 #[serde(skip_serializing_if = "Option::is_none")]
7 #[serde(default)]
8 pub timestamp: Option<u64>,
9 pub source: ActionSource,
10 pub target: ActionTarget,
11 pub description: String,
12}
13
14#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
15#[serde(rename_all = "camelCase")]
16pub struct ActionSource {
17 pub unique_id: Uuid,
18 pub name: String,
19}
20
21#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
22#[serde(rename_all = "camelCase")]
23pub struct ActionTarget {
24 #[serde(skip_serializing_if = "Option::is_none")]
25 #[serde(default)]
26 pub unique_id: Option<Uuid>,
27 pub name: String,
28 #[serde(rename = "type")]
29 pub target_type: ActionTargetType,
30}
31
32#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
33#[serde(rename_all = "snake_case")]
34pub enum ActionTargetType {
35 User,
36 Group,
37 Track,
38}