1use std::collections::HashMap;
8
9use serde::{Deserialize, Serialize};
10
11mod annotations;
15mod common;
16mod entries_filter;
17mod entry;
18mod format;
19mod new_entry;
20mod patch_entry;
21mod query;
22mod tags;
23mod user;
24
25pub(crate) use self::annotations::AnnotationRows;
27pub use self::annotations::{Annotation, Annotations, NewAnnotation, Range};
28pub use self::common::ID;
29pub(crate) use self::entries_filter::RequestEntriesFilter;
30pub use self::entries_filter::{EntriesFilter, SortBy, SortOrder};
31pub(crate) use self::entry::{DeletedEntry, PaginatedEntries};
32pub use self::entry::{Entries, EntriesPage, Entry};
33pub use self::format::Format;
34pub use self::new_entry::NewEntry;
35pub use self::patch_entry::PatchEntry;
36pub(crate) use self::query::EntriesExistParams;
37pub use self::tags::{DeletedTag, Tag, TagString, Tags};
38pub use self::user::{NewlyRegisteredInfo, RegisterInfo, User};
39
40#[derive(Deserialize, Debug)]
42pub(crate) struct TokenInfo {
43 pub access_token: String,
44 pub expires_in: u32,
45 pub token_type: String,
46 pub scope: Option<String>,
47 pub refresh_token: String,
48}
49
50#[derive(Debug, Clone)]
52pub struct Config {
53 pub client_id: String,
55
56 pub client_secret: String,
58
59 pub username: String,
61
62 pub password: String,
65
66 pub base_url: String,
68}
69
70pub type ExistsInfo = HashMap<String, Option<ID>>;
73
74#[derive(Deserialize, Debug)]
77pub(crate) struct ExistsResponse {
78 pub exists: Option<ID>,
79}
80
81#[derive(Serialize, Debug)]
84pub(crate) struct Unit {}
85pub(crate) static UNIT: &Unit = &Unit {};