Skip to content

Commit

Permalink
Extract crate::v1::request::* mod
Browse files Browse the repository at this point in the history
  • Loading branch information
bouzuya committed Apr 21, 2024
1 parent a738f28 commit 578b15d
Show file tree
Hide file tree
Showing 12 changed files with 121 additions and 89 deletions.
112 changes: 23 additions & 89 deletions src/v1/documents/request.rs
@@ -1,5 +1,26 @@
use crate::v1::documents::Range;
use crate::v1::documents::Size;
mod delete_content_range_request;
mod end_of_segument_location;
mod insert_inline_image_request;
mod insert_inline_image_request_insertion_location;
mod insert_text_request;
mod insert_text_request_insertion_location;
mod location;
mod replace_all_text_request;
mod replace_all_text_request_criteria;
mod request_request;
mod substring_match_criteria;

pub use self::delete_content_range_request::DeleteContentRangeRequest;
pub use self::end_of_segument_location::EndOfSegmentLocation;
pub use self::insert_inline_image_request::InsertInlineImageRequest;
pub use self::insert_inline_image_request_insertion_location::InsertInlineImageRequestInsertionLocation;
pub use self::insert_text_request::InsertTextRequest;
pub use self::insert_text_request_insertion_location::InsertTextRequestInsertionLocation;
pub use self::location::Location;
pub use self::replace_all_text_request::ReplaceAllTextRequest;
pub use self::replace_all_text_request_criteria::ReplaceAllTextRequestCriteria;
pub use self::request_request::RequestRequest;
pub use self::substring_match_criteria::SubstringMatchCriteria;

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#request>
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
Expand All @@ -8,90 +29,3 @@ pub struct Request {
#[serde(flatten)]
pub request: Option<RequestRequest>,
}

#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub enum RequestRequest {
ReplaceAllText(ReplaceAllTextRequest),
InsertText(InsertTextRequest),
// TODO: ...
DeleteContentRange(DeleteContentRangeRequest),
InsertInlineImage(InsertInlineImageRequest),
// TODO: ...
}

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#replacealltextrequest>
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ReplaceAllTextRequest {
pub replace_text: Option<String>,
#[serde(flatten)]
pub criteria: Option<ReplaceAllTextRequestCriteria>,
}

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#replacealltextrequest>
#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub enum ReplaceAllTextRequestCriteria {
ContainsText(SubstringMatchCriteria),
}

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#substringmatchcriteria>
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SubstringMatchCriteria {
pub text: Option<String>,
pub match_case: Option<bool>,
}

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#insertinlineimagerequest>
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct InsertInlineImageRequest {
pub uri: Option<String>,
pub object_size: Option<Size>,
#[serde(flatten)]
pub insertion_location: Option<InsertInlineImageRequestInsertionLocation>,
}

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#insertinlineimagerequest>
#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub enum InsertInlineImageRequestInsertionLocation {
Location(Location),
EndOfSegmentLocation(EndOfSegmentLocation),
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteContentRangeRequest {
pub range: Option<Range>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct InsertTextRequest {
pub text: Option<String>,
#[serde(flatten)]
pub insertion_location: Option<InsertTextRequestInsertionLocation>,
}

#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub enum InsertTextRequestInsertionLocation {
Location(Location),
EndOfSegmentLocation(EndOfSegmentLocation),
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Location {
pub segment_id: Option<String>,
pub index: Option<usize>,
}

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct EndOfSegmentLocation {
pub segment_id: Option<String>,
}
7 changes: 7 additions & 0 deletions src/v1/documents/request/delete_content_range_request.rs
@@ -0,0 +1,7 @@
use crate::v1::documents::Range;

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteContentRangeRequest {
pub range: Option<Range>,
}
5 changes: 5 additions & 0 deletions src/v1/documents/request/end_of_segument_location.rs
@@ -0,0 +1,5 @@
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct EndOfSegmentLocation {
pub segment_id: Option<String>,
}
12 changes: 12 additions & 0 deletions src/v1/documents/request/insert_inline_image_request.rs
@@ -0,0 +1,12 @@
use crate::v1::documents::request::InsertInlineImageRequestInsertionLocation;
use crate::v1::documents::Size;

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#insertinlineimagerequest>
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct InsertInlineImageRequest {
pub uri: Option<String>,
pub object_size: Option<Size>,
#[serde(flatten)]
pub insertion_location: Option<InsertInlineImageRequestInsertionLocation>,
}
@@ -0,0 +1,10 @@
use crate::v1::documents::request::EndOfSegmentLocation;
use crate::v1::documents::request::Location;

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#insertinlineimagerequest>
#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub enum InsertInlineImageRequestInsertionLocation {
Location(Location),
EndOfSegmentLocation(EndOfSegmentLocation),
}
9 changes: 9 additions & 0 deletions src/v1/documents/request/insert_text_request.rs
@@ -0,0 +1,9 @@
use crate::v1::documents::request::InsertTextRequestInsertionLocation;

#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct InsertTextRequest {
pub text: Option<String>,
#[serde(flatten)]
pub insertion_location: Option<InsertTextRequestInsertionLocation>,
}
@@ -0,0 +1,9 @@
use crate::v1::documents::request::EndOfSegmentLocation;
use crate::v1::documents::request::Location;

#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub enum InsertTextRequestInsertionLocation {
Location(Location),
EndOfSegmentLocation(EndOfSegmentLocation),
}
6 changes: 6 additions & 0 deletions src/v1/documents/request/location.rs
@@ -0,0 +1,6 @@
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Location {
pub segment_id: Option<String>,
pub index: Option<usize>,
}
10 changes: 10 additions & 0 deletions src/v1/documents/request/replace_all_text_request.rs
@@ -0,0 +1,10 @@
use crate::v1::documents::request::ReplaceAllTextRequestCriteria;

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#replacealltextrequest>
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ReplaceAllTextRequest {
pub replace_text: Option<String>,
#[serde(flatten)]
pub criteria: Option<ReplaceAllTextRequestCriteria>,
}
8 changes: 8 additions & 0 deletions src/v1/documents/request/replace_all_text_request_criteria.rs
@@ -0,0 +1,8 @@
use crate::v1::documents::request::SubstringMatchCriteria;

/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#replacealltextrequest>
#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub enum ReplaceAllTextRequestCriteria {
ContainsText(SubstringMatchCriteria),
}
15 changes: 15 additions & 0 deletions src/v1/documents/request/request_request.rs
@@ -0,0 +1,15 @@
use crate::v1::documents::request::DeleteContentRangeRequest;
use crate::v1::documents::request::InsertInlineImageRequest;
use crate::v1::documents::request::InsertTextRequest;
use crate::v1::documents::request::ReplaceAllTextRequest;

#[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub enum RequestRequest {
ReplaceAllText(ReplaceAllTextRequest),
InsertText(InsertTextRequest),
// TODO: ...
DeleteContentRange(DeleteContentRangeRequest),
InsertInlineImage(InsertInlineImageRequest),
// TODO: ...
}
7 changes: 7 additions & 0 deletions src/v1/documents/request/substring_match_criteria.rs
@@ -0,0 +1,7 @@
/// <https://developers.google.com/docs/api/reference/rest/v1/documents/request#substringmatchcriteria>
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SubstringMatchCriteria {
pub text: Option<String>,
pub match_case: Option<bool>,
}

0 comments on commit 578b15d

Please sign in to comment.