Skip to main content

linear_queries/
scalars.rs

1use linear_schema::linear as schema;
2use serde::Deserialize;
3use serde::Serialize;
4
5/// Wrapper for Linear DateTime scalar
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct DateTime(pub String);
8
9impl cynic::schema::IsScalar<schema::DateTime> for DateTime {
10    type SchemaType = schema::DateTime;
11}
12
13impl cynic::coercions::CoercesTo<schema::DateTime> for DateTime {}
14
15/// Wrapper for Linear DateTimeOrDuration scalar (used in date comparators)
16/// Accepts ISO 8601 date strings or duration strings
17#[derive(Debug, Clone, Serialize, Deserialize)]
18pub struct DateTimeOrDuration(pub String);
19
20impl cynic::schema::IsScalar<schema::DateTimeOrDuration> for DateTimeOrDuration {
21    type SchemaType = schema::DateTimeOrDuration;
22}
23
24impl cynic::coercions::CoercesTo<schema::DateTimeOrDuration> for DateTimeOrDuration {}
25
26/// Wrapper for Linear TimelessDate scalar (YYYY-MM-DD format)
27#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct TimelessDate(pub String);
29
30impl cynic::schema::IsScalar<schema::TimelessDate> for TimelessDate {
31    type SchemaType = schema::TimelessDate;
32}
33
34impl cynic::coercions::CoercesTo<schema::TimelessDate> for TimelessDate {}