luckperms_rs/models/
action.rs

1use 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}