luckperms_rs/requests/
permission_check.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct PermissionCheckRequest {
6    pub permission: String,
7    pub query_options: QueryOptions,
8}
9
10#[derive(Debug, Serialize, Deserialize)]
11#[serde(rename_all = "camelCase")]
12pub struct QueryOptions {
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub mode: Option<QueryMode>,
15    #[serde(skip_serializing_if = "Vec::is_empty")]
16    pub flags: Vec<QueryFlag>,
17    #[serde(skip_serializing_if = "Vec::is_empty")]
18    pub contexts: Vec<Context>,
19}
20
21#[derive(Debug, Serialize, Deserialize)]
22#[serde(rename_all = "snake_case")]
23pub enum QueryMode {
24    Contextual,
25    NonContextual,
26}
27
28#[derive(Debug, Serialize, Deserialize)]
29#[serde(rename_all = "snake_case")]
30pub enum QueryFlag {
31    ResolveInheritance,
32    IncludeNodesWithoutServerContext,
33    IncludeNodesWithoutWorldContext,
34    ApplyInheritanceNodesWithoutServerContext,
35    ApplyInheritanceNodesWithoutWorldContext,
36}
37
38#[derive(Debug, Serialize, Deserialize)]
39#[serde(rename_all = "camelCase")]
40pub struct Context {
41    pub key: String,
42    pub value: String,
43}