Skip to main content

linear_api/
lib.rs

1#![forbid(unsafe_code)]
2#![warn(missing_docs)]
3#![doc = include_str!("../README.md")]
4// `Error` intentionally carries rich context (rate-limit snapshots, GraphQL
5// error lists) inline; boxing it would complicate every match site for a
6// crate whose results are almost always immediately consumed.
7#![allow(clippy::result_large_err)]
8
9mod client;
10mod error;
11mod filter;
12mod ids;
13mod pagination;
14mod types;
15mod viewer;
16
17pub mod comments;
18pub mod issues;
19pub mod labels;
20pub mod projects;
21pub mod relations;
22pub mod workspace;
23
24pub use client::{LinearClient, LinearClientBuilder, RateLimitInfo, RetryConfig};
25pub use error::{Error, ErrorExtensions, GraphQlError, LinearErrorType, Result};
26pub use filter::*;
27pub use ids::*;
28pub use pagination::{Page, PageInfo, collect_all, paginate};
29pub use types::*;
30pub use viewer::{Organization, Viewer};
31
32/// Registry of every GraphQL document this crate ships, as `(operation name,
33/// document text)` pairs. Consumed by the schema-validation test harness.
34#[doc(hidden)]
35pub fn all_documents() -> Vec<(&'static str, &'static str)> {
36    [
37        viewer::DOCUMENTS,
38        issues::DOCUMENTS,
39        projects::DOCUMENTS,
40        workspace::DOCUMENTS,
41        labels::DOCUMENTS,
42        relations::DOCUMENTS,
43        comments::DOCUMENTS,
44    ]
45    .concat()
46}