63 lines
1.3 KiB
Rust
63 lines
1.3 KiB
Rust
pub mod add_item_params;
|
|
pub mod add_location_params;
|
|
pub mod add_token_params;
|
|
pub mod delete_params;
|
|
pub mod edit_params;
|
|
pub mod find_params;
|
|
pub mod info_params;
|
|
pub mod item_command_params;
|
|
pub mod link_params;
|
|
pub mod register_params;
|
|
pub mod selling_params;
|
|
pub mod set_portal_params;
|
|
|
|
use crate::models::player::UserID;
|
|
use serde::de::DeserializeOwned;
|
|
use serde::{Deserialize, Serialize};
|
|
use std::fmt::Debug;
|
|
|
|
pub trait GeoffreyParam: Serialize + DeserializeOwned + Debug + Clone + Send + Sync {}
|
|
|
|
pub trait GeoffreyRequest<T> {
|
|
fn get_token(&self) -> String;
|
|
fn get_params(&self) -> &T;
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct CommandRequest<T> {
|
|
pub token: String,
|
|
pub user_id: Option<UserID>,
|
|
pub params: T,
|
|
}
|
|
|
|
impl<T> GeoffreyRequest<T> for CommandRequest<T> {
|
|
fn get_token(&self) -> String {
|
|
self.token.clone()
|
|
}
|
|
|
|
fn get_params(&self) -> &T {
|
|
&self.params
|
|
}
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct ModelRequest<T> {
|
|
pub token: String,
|
|
pub params: T,
|
|
}
|
|
|
|
impl<T> GeoffreyRequest<T> for ModelRequest<T> {
|
|
fn get_token(&self) -> String {
|
|
self.token.clone()
|
|
}
|
|
|
|
fn get_params(&self) -> &T {
|
|
&self.params
|
|
}
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
pub struct EmptyRequest {}
|
|
|
|
impl GeoffreyParam for EmptyRequest {}
|