2022-11-28 10:26:47 +01:00
|
|
|
use serde::{Deserialize, Serialize};
|
2022-12-28 22:12:58 +01:00
|
|
|
use serde_enum_str::{Deserialize_enum_str, Serialize_enum_str};
|
2022-11-28 10:26:47 +01:00
|
|
|
|
|
|
|
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
|
|
|
#[serde(rename_all = "lowercase")]
|
|
|
|
pub enum Flag {
|
|
|
|
Required,
|
|
|
|
Optional,
|
|
|
|
Included,
|
|
|
|
Incompatible,
|
|
|
|
Launch,
|
2022-11-28 11:06:15 +01:00
|
|
|
Env,
|
2023-04-21 20:59:52 +02:00
|
|
|
Expected,
|
2023-09-01 12:08:45 +02:00
|
|
|
Patch,
|
2022-11-28 10:26:47 +01:00
|
|
|
}
|
|
|
|
|
2022-12-28 22:12:58 +01:00
|
|
|
#[derive(Debug, Deserialize_enum_str, Serialize_enum_str, PartialEq, Eq, Hash)]
|
2022-11-28 10:26:47 +01:00
|
|
|
#[serde(rename_all = "lowercase")]
|
|
|
|
pub enum InstallAction {
|
|
|
|
Move,
|
|
|
|
Extract,
|
|
|
|
Rename,
|
|
|
|
Inject,
|
2023-09-01 12:08:45 +02:00
|
|
|
Library,
|
2022-12-28 22:12:58 +01:00
|
|
|
#[serde(other)]
|
2022-11-28 10:26:47 +01:00
|
|
|
Unknown(String),
|
2022-11-28 11:06:15 +01:00
|
|
|
}
|
2022-12-28 22:12:58 +01:00
|
|
|
|
|
|
|
#[derive(Debug, Deserialize_enum_str, Serialize_enum_str, PartialEq, Eq, Hash)]
|
|
|
|
#[serde(rename_all = "lowercase")]
|
|
|
|
pub enum APIFeature {
|
|
|
|
Addons,
|
|
|
|
Files,
|
|
|
|
Env,
|
|
|
|
#[serde(other)]
|
|
|
|
Unofficial(String),
|
2023-02-03 21:50:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Hash, Default)]
|
|
|
|
#[serde(rename_all = "lowercase")]
|
|
|
|
pub enum Side {
|
|
|
|
Client,
|
|
|
|
Server,
|
|
|
|
#[default]
|
|
|
|
Both,
|
2023-09-01 12:08:45 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
|
|
|
#[serde(rename_all = "lowercase")]
|
|
|
|
pub enum ArgumentMode {
|
|
|
|
Replace,
|
|
|
|
Append,
|
|
|
|
Expand,
|
|
|
|
Override,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Side {
|
|
|
|
pub fn compatbile_with(&self, other: &Self) -> bool {
|
|
|
|
match self {
|
|
|
|
Side::Client => other == &Self::Client || other == &Self::Both,
|
|
|
|
Side::Server => other == &Self::Server || other == &Self::Both,
|
|
|
|
Side::Both => true,
|
|
|
|
}
|
|
|
|
}
|
2022-12-28 22:12:58 +01:00
|
|
|
}
|