refactor: remove useless folders

This commit is contained in:
2025-03-04 01:03:39 +08:00
parent 2844e1fc32
commit 408d211f27
405 changed files with 9988 additions and 28082 deletions

View File

@@ -1,7 +1,75 @@
use serde::{Deserialize, Serialize};
use core::f64;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct GraphQLConfig {
pub depth_limit: Option<usize>,
pub complexity_limit: Option<usize>,
use serde::{
Deserialize, Deserializer, Serialize, Serializer,
de::{self, Unexpected},
};
#[derive(Debug, Clone, Copy)]
pub struct OnlyInfOrNaN(f64);
impl OnlyInfOrNaN {
pub fn inf() -> Self {
OnlyInfOrNaN(f64::INFINITY)
}
pub fn nan() -> Self {
OnlyInfOrNaN(f64::NAN)
}
}
impl From<OnlyInfOrNaN> for Option<usize> {
fn from(_: OnlyInfOrNaN) -> Self {
None
}
}
impl Serialize for OnlyInfOrNaN {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serializer.serialize_f64(self.0)
}
}
impl<'de> Deserialize<'de> for OnlyInfOrNaN {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let value = f64::deserialize(deserializer)?;
if value.is_nan() {
Ok(Self::nan())
} else if value.is_infinite() {
Ok(Self::inf())
} else {
Err(de::Error::invalid_value(
Unexpected::Float(value),
&"a NaN or a Inf",
))
}
}
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GraphQLLimitNum {
Num(usize),
Adhoc(OnlyInfOrNaN),
}
impl From<GraphQLLimitNum> for Option<usize> {
fn from(value: GraphQLLimitNum) -> Self {
match value {
GraphQLLimitNum::Adhoc(v) => v.into(),
GraphQLLimitNum::Num(v) => Some(v),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GraphQLConfig {
pub depth_limit: Option<GraphQLLimitNum>,
pub complexity_limit: Option<GraphQLLimitNum>,
}

View File

@@ -14,7 +14,11 @@ impl GraphQLService {
config: GraphQLConfig,
db: DatabaseConnection,
) -> RResult<Self> {
let schema = schema_root::schema(db, config.depth_limit, config.complexity_limit)?;
let schema = schema_root::schema(
db,
config.depth_limit.and_then(|l| l.into()),
config.complexity_limit.and_then(|l| l.into()),
)?;
Ok(Self { schema })
}
}