diff --git a/generator/src/main.rs b/generator/src/main.rs index 0286bf7..9bd1ea3 100644 --- a/generator/src/main.rs +++ b/generator/src/main.rs @@ -728,6 +728,12 @@ fn create_struct_for_definition( if field_ty == "Option" { fields.push_str("#[serde(deserialize_with = \"crate::none_if_blank_url\")]\n"); } + if field_ty == "time::OffsetDateTime" { + fields.push_str("#[serde(with = \"time::serde::rfc3339\")]\n"); + } + if field_ty == "Option" { + fields.push_str("#[serde(with = \"time::serde::rfc3339::option\")]\n"); + } if &field_name != prop_name { fields.push_str("#[serde(rename = \""); fields.push_str(prop_name); diff --git a/src/generated.rs b/src/generated.rs index a9ed855..daf0a94 100644 --- a/src/generated.rs +++ b/src/generated.rs @@ -7419,6 +7419,7 @@ pub mod structs { pub comment: Option, pub comment_id: Option, pub content: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, pub id: Option, pub is_private: Option, @@ -7448,6 +7449,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct AddTimeOption { + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, pub time: u64, pub user_name: Option, @@ -7484,6 +7486,7 @@ pub mod structs { pub struct Attachment { #[serde(deserialize_with = "crate::none_if_blank_url")] pub browser_download_url: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub download_count: Option, pub id: Option, @@ -7495,6 +7498,7 @@ pub mod structs { #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct BlockedUser { pub block_id: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, } @@ -7523,6 +7527,7 @@ pub mod structs { pub block_on_outdated_branch: Option, pub block_on_rejected_reviews: Option, pub branch_name: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub dismiss_stale_approvals: Option, pub enable_approvals_whitelist: Option, @@ -7541,6 +7546,7 @@ pub mod structs { pub rule_name: Option, pub status_check_contexts: Option>, pub unprotected_file_patterns: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, } @@ -7610,6 +7616,7 @@ pub mod structs { pub struct Comment { pub assets: Option>, pub body: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub html_url: Option, @@ -7620,6 +7627,7 @@ pub mod structs { pub original_author_id: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub pull_request_url: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, pub user: Option, } @@ -7629,6 +7637,7 @@ pub mod structs { pub author: Option, pub commit: Option, pub committer: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, pub files: Option>, #[serde(deserialize_with = "crate::none_if_blank_url")] @@ -7652,12 +7661,15 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct CommitDateOptions { + #[serde(with = "time::serde::rfc3339::option")] pub author: Option, + #[serde(with = "time::serde::rfc3339::option")] pub committer: Option, } #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct CommitMeta { + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, pub sha: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] @@ -7678,6 +7690,7 @@ pub mod structs { #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct CommitStatus { pub context: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub creator: Option, pub description: Option, @@ -7685,6 +7698,7 @@ pub mod structs { pub status: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub target_url: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub url: Option, @@ -7845,6 +7859,7 @@ pub mod structs { #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct CreateIssueCommentOption { pub body: String, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, } @@ -7856,6 +7871,7 @@ pub mod structs { pub assignees: Option>, pub body: Option, pub closed: Option, + #[serde(with = "time::serde::rfc3339::option")] pub due_date: Option, pub labels: Option>, pub milestone: Option, @@ -7889,6 +7905,7 @@ pub mod structs { #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct CreateMilestoneOption { pub description: Option, + #[serde(with = "time::serde::rfc3339::option")] pub due_on: Option, pub state: Option, pub title: Option, @@ -7932,6 +7949,7 @@ pub mod structs { pub assignees: Option>, pub base: Option, pub body: Option, + #[serde(with = "time::serde::rfc3339::option")] pub due_date: Option, pub head: Option, pub labels: Option>, @@ -8034,6 +8052,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct CreateUserOption { + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub email: String, pub full_name: Option, @@ -8062,7 +8081,9 @@ pub mod structs { pub struct Cron { pub exec_times: Option, pub name: Option, + #[serde(with = "time::serde::rfc3339::option")] pub next: Option, + #[serde(with = "time::serde::rfc3339::option")] pub prev: Option, pub schedule: Option, } @@ -8094,6 +8115,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct DeleteLabelsOption { + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, } @@ -8101,6 +8123,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct DeployKey { + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub fingerprint: Option, pub id: Option, @@ -8159,6 +8182,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct EditDeadlineOption { + #[serde(with = "time::serde::rfc3339")] pub due_date: time::OffsetDateTime, } @@ -8185,6 +8209,7 @@ pub mod structs { #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct EditIssueCommentOption { pub body: String, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, } @@ -8195,6 +8220,7 @@ pub mod structs { pub assignee: Option, pub assignees: Option>, pub body: Option, + #[serde(with = "time::serde::rfc3339::option")] pub due_date: Option, pub milestone: Option, #[serde(rename = "ref")] @@ -8202,6 +8228,7 @@ pub mod structs { pub state: Option, pub title: Option, pub unset_due_date: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, } @@ -8221,6 +8248,7 @@ pub mod structs { #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct EditMilestoneOption { pub description: Option, + #[serde(with = "time::serde::rfc3339::option")] pub due_on: Option, pub state: Option, pub title: Option, @@ -8248,6 +8276,7 @@ pub mod structs { pub assignees: Option>, pub base: Option, pub body: Option, + #[serde(with = "time::serde::rfc3339::option")] pub due_date: Option, pub labels: Option>, pub milestone: Option, @@ -8382,6 +8411,7 @@ pub mod structs { pub struct FileCommitResponse { pub author: Option, pub committer: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub html_url: Option, @@ -8438,8 +8468,10 @@ pub mod structs { pub can_encrypt_comms: Option, pub can_encrypt_storage: Option, pub can_sign: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub emails: Option>, + #[serde(with = "time::serde::rfc3339::option")] pub expires_at: Option, pub id: Option, pub key_id: Option, @@ -8589,11 +8621,13 @@ pub mod structs { pub authorization_header: Option, pub branch_filter: Option, pub config: Option>, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub events: Option>, pub id: Option, #[serde(rename = "type")] pub r#type: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, } @@ -8622,9 +8656,12 @@ pub mod structs { pub assignee: Option, pub assignees: Option>, pub body: Option, + #[serde(with = "time::serde::rfc3339::option")] pub closed_at: Option, pub comments: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, + #[serde(with = "time::serde::rfc3339::option")] pub due_date: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub html_url: Option, @@ -8642,6 +8679,7 @@ pub mod structs { pub repository: Option, pub state: Option, pub title: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub url: Option, @@ -8672,6 +8710,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct IssueDeadline { + #[serde(with = "time::serde::rfc3339::option")] pub due_date: Option, } @@ -8694,6 +8733,7 @@ pub mod structs { #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct IssueLabelsOption { pub labels: Option>, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, } @@ -8847,15 +8887,19 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct Milestone { + #[serde(with = "time::serde::rfc3339::option")] pub closed_at: Option, pub closed_issues: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub description: Option, + #[serde(with = "time::serde::rfc3339::option")] pub due_on: Option, pub id: Option, pub open_issues: Option, pub state: Option, pub title: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, } @@ -8963,6 +9007,7 @@ pub mod structs { pub repository: Option, pub subject: Option, pub unread: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub url: Option, @@ -8978,6 +9023,7 @@ pub mod structs { pub client_id: Option, pub client_secret: Option, pub confidential_client: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, pub id: Option, pub name: Option, @@ -9029,6 +9075,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct Package { + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub creator: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] @@ -9067,6 +9114,7 @@ pub mod structs { pub message: Option, pub modified: Option>, pub removed: Option>, + #[serde(with = "time::serde::rfc3339::option")] pub timestamp: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub url: Option, @@ -9106,6 +9154,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct PublicKey { + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub fingerprint: Option, pub id: Option, @@ -9127,11 +9176,14 @@ pub mod structs { pub assignees: Option>, pub base: Option, pub body: Option, + #[serde(with = "time::serde::rfc3339::option")] pub closed_at: Option, pub comments: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub diff_url: Option, + #[serde(with = "time::serde::rfc3339::option")] pub due_date: Option, pub head: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] @@ -9143,6 +9195,7 @@ pub mod structs { pub merge_commit_sha: Option, pub mergeable: Option, pub merged: Option, + #[serde(with = "time::serde::rfc3339::option")] pub merged_at: Option, pub merged_by: Option, pub milestone: Option, @@ -9153,6 +9206,7 @@ pub mod structs { pub requested_reviewers: Option>, pub state: Option, pub title: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub url: Option, @@ -9164,6 +9218,7 @@ pub mod structs { #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct PullRequestMeta { pub merged: Option, + #[serde(with = "time::serde::rfc3339::option")] pub merged_at: Option, } @@ -9183,8 +9238,10 @@ pub mod structs { pub pull_request_url: Option, pub stale: Option, pub state: Option, + #[serde(with = "time::serde::rfc3339::option")] pub submitted_at: Option, pub team: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, pub user: Option, } @@ -9195,6 +9252,7 @@ pub mod structs { pub struct PullReviewComment { pub body: Option, pub commit_id: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub diff_hunk: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] @@ -9208,6 +9266,7 @@ pub mod structs { #[serde(deserialize_with = "crate::none_if_blank_url")] pub pull_request_url: Option, pub resolver: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, pub user: Option, } @@ -9239,6 +9298,7 @@ pub mod structs { #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct Reaction { pub content: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub user: Option, } @@ -9259,6 +9319,7 @@ pub mod structs { pub assets: Option>, pub author: Option, pub body: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub draft: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] @@ -9266,6 +9327,7 @@ pub mod structs { pub id: Option, pub name: Option, pub prerelease: Option, + #[serde(with = "time::serde::rfc3339::option")] pub published_at: Option, pub tag_name: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] @@ -9332,11 +9394,13 @@ pub mod structs { pub allow_rebase_update: Option, pub allow_squash_merge: Option, pub archived: Option, + #[serde(with = "time::serde::rfc3339::option")] pub archived_at: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub avatar_url: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub clone_url: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub default_allow_maintainer_edit: Option, pub default_branch: Option, @@ -9368,6 +9432,7 @@ pub mod structs { pub link: Option, pub mirror: Option, pub mirror_interval: Option, + #[serde(with = "time::serde::rfc3339::option")] pub mirror_updated: Option, pub name: Option, pub open_issues_count: Option, @@ -9385,6 +9450,7 @@ pub mod structs { pub ssh_url: Option, pub stars_count: Option, pub template: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub url: Option, @@ -9419,6 +9485,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct Secret { + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub name: Option, } @@ -9439,6 +9506,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct StopWatch { + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, pub duration: Option, pub issue_index: Option, @@ -9497,6 +9565,7 @@ pub mod structs { pub assignee: Option, pub assignee_team: Option, pub body: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub dependent_issue: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] @@ -9525,6 +9594,7 @@ pub mod structs { pub tracked_time: Option, #[serde(rename = "type")] pub r#type: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated_at: Option, pub user: Option, } @@ -9540,10 +9610,12 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct TopicResponse { + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, pub id: Option, pub repo_count: Option, pub topic_name: Option, + #[serde(with = "time::serde::rfc3339::option")] pub updated: Option, } @@ -9551,6 +9623,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct TrackedTime { + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, pub id: Option, pub issue: Option, @@ -9607,6 +9680,7 @@ pub mod structs { pub active: Option, #[serde(deserialize_with = "crate::none_if_blank_url")] pub avatar_url: Option, + #[serde(with = "time::serde::rfc3339::option")] pub created: Option, pub description: Option, pub email: Option, @@ -9616,6 +9690,7 @@ pub mod structs { pub id: Option, pub is_admin: Option, pub language: Option, + #[serde(with = "time::serde::rfc3339::option")] pub last_login: Option, pub location: Option, pub login: Option, @@ -9669,6 +9744,7 @@ pub mod structs { /// #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct WatchInfo { + #[serde(with = "time::serde::rfc3339::option")] pub created_at: Option, pub ignored: Option, pub reason: Option<()>,