Move scalar definitions to separate file
This commit is contained in:
parent
5d935ab059
commit
73b5e4fc43
|
@ -4,6 +4,8 @@ use std::path::Path;
|
||||||
use std::thread::sleep;
|
use std::thread::sleep;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
|
pub mod scalars;
|
||||||
|
pub use scalars::*;
|
||||||
pub mod search_games;
|
pub mod search_games;
|
||||||
pub use search_games::*;
|
pub use search_games::*;
|
||||||
pub mod tournament_events;
|
pub mod tournament_events;
|
||||||
|
@ -40,40 +42,6 @@ pub fn get_auth_token(config_dir: &Path) -> Option<String> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub mod scalars {
|
|
||||||
use schema::schema;
|
|
||||||
|
|
||||||
// Types
|
|
||||||
|
|
||||||
// HACK: Unfortunately, start.gg seems to use integers for its ID type, whereas
|
|
||||||
// cynic always assumes that IDs are strings. To get around that, we define new
|
|
||||||
// scalar types that deserialize to u64.
|
|
||||||
|
|
||||||
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
|
||||||
#[cynic(graphql_type = "ID")]
|
|
||||||
pub struct VideogameId(pub u64);
|
|
||||||
|
|
||||||
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
|
||||||
#[cynic(graphql_type = "ID")]
|
|
||||||
pub struct EventId(pub u64);
|
|
||||||
|
|
||||||
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
|
||||||
#[cynic(graphql_type = "ID")]
|
|
||||||
pub struct EntrantId(pub u64);
|
|
||||||
|
|
||||||
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
|
||||||
#[cynic(graphql_type = "ID")]
|
|
||||||
pub struct PlayerId(pub u64);
|
|
||||||
|
|
||||||
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
|
||||||
#[cynic(graphql_type = "ID")]
|
|
||||||
pub struct SetId(pub u64);
|
|
||||||
|
|
||||||
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
|
||||||
pub struct Timestamp(pub u64);
|
|
||||||
}
|
|
||||||
pub use scalars::*;
|
|
||||||
|
|
||||||
// Query machinery
|
// Query machinery
|
||||||
|
|
||||||
pub trait QueryUnwrap<Vars>: 'static + QueryBuilder<Vars> {
|
pub trait QueryUnwrap<Vars>: 'static + QueryBuilder<Vars> {
|
||||||
|
|
30
src/queries/scalars.rs
Normal file
30
src/queries/scalars.rs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
use schema::schema;
|
||||||
|
|
||||||
|
// Types
|
||||||
|
|
||||||
|
// HACK: Unfortunately, start.gg seems to use integers for its ID type, whereas
|
||||||
|
// cynic always assumes that IDs are strings. To get around that, we define new
|
||||||
|
// scalar types that deserialize to u64.
|
||||||
|
|
||||||
|
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
|
#[cynic(graphql_type = "ID")]
|
||||||
|
pub struct VideogameId(pub u64);
|
||||||
|
|
||||||
|
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
|
#[cynic(graphql_type = "ID")]
|
||||||
|
pub struct EventId(pub u64);
|
||||||
|
|
||||||
|
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
|
#[cynic(graphql_type = "ID")]
|
||||||
|
pub struct EntrantId(pub u64);
|
||||||
|
|
||||||
|
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
|
#[cynic(graphql_type = "ID")]
|
||||||
|
pub struct PlayerId(pub u64);
|
||||||
|
|
||||||
|
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
|
#[cynic(graphql_type = "ID")]
|
||||||
|
pub struct SetId(pub u64);
|
||||||
|
|
||||||
|
#[derive(cynic::Scalar, Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
|
pub struct Timestamp(pub u64);
|
Loading…
Reference in a new issue