pub mod ban_record;
pub mod key_value;
pub mod quota_record;
pub mod rate_limit;
pub use ban_record::{
create_table_ddl as ban_table_ddl, create_target_key, Entity as BanRecordEntity,
Model as BanRecordModel,
};
pub use key_value::{
create_table_ddl as key_value_table_ddl, Entity as KeyValueEntity, Model as KeyValueModel,
};
pub use quota_record::{
create_quota_key, create_table_ddl as quota_table_ddl, Entity as QuotaRecordEntity,
Model as QuotaRecordModel,
};
pub use rate_limit::{
create_rate_key, create_table_ddl as rate_limit_table_ddl, Entity as RateLimitEntity,
Model as RateLimitModel,
};
pub fn create_all_tables_ddl() -> &'static str {
let ddl = [
key_value::create_table_ddl(),
ban_record::create_table_ddl(),
quota_record::create_table_ddl(),
rate_limit::create_table_ddl(),
];
Box::leak(ddl.join(";\n").into_boxed_str())
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_create_all_tables_ddl() {
let ddl = create_all_tables_ddl();
assert!(ddl.contains("limiteron_bans"));
assert!(ddl.contains("limiteron_quotas"));
assert!(ddl.contains("limiteron_rate_limits"));
assert!(ddl.contains("limiteron_kv"));
}
}