1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#![allow(clippy::needless_return, clippy::redundant_field_names)]
pub mod environment;
pub mod databases;
pub mod regexes;
use databases::{Database, DatabaseManager};
use serenity::async_trait;
#[async_trait]
pub trait Key<Manager: DatabaseManager<DB>, DB: Database> {
fn get_key_info(&self) -> &KeyInfo;
async fn run_key(&self, parameter: &[String], environment: &mut environment::Environment<'_, Manager, DB>) -> Result<String, String>;
}
#[derive(Clone, Debug)]
pub struct KeyInfo {
pub parameters_required: Vec<usize>,
pub name: String,
}