use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DeleteRangeParams {
#[serde(rename = "range")]
pub range: String,
#[serde(rename = "dimension")]
pub dimension: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DeleteRangeResponse {
pub data: Option<DeleteRangeResult>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DeleteRangeResult {
#[serde(rename = "spreadsheet_token")]
pub spreadsheet_token: String,
#[serde(rename = "deleted_range")]
pub deleted_range: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InsertDimensionParams {
#[serde(rename = "range")]
pub range: String,
#[serde(rename = "dimension")]
pub dimension: String,
#[serde(rename = "inherit_style")]
pub inherit_style: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InsertDimensionResponse {
pub data: Option<InsertDimensionResult>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InsertDimensionResult {
#[serde(rename = "spreadsheet_token")]
pub spreadsheet_token: String,
#[serde(rename = "inserted_range")]
pub inserted_range: String,
#[serde(rename = "inserted_dimension")]
pub inserted_dimension: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MoveDimensionParams {
#[serde(rename = "source_range")]
pub source_range: String,
#[serde(rename = "destination_index")]
pub destination_index: String,
#[serde(rename = "dimension")]
pub dimension: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MoveDimensionResponse {
pub data: Option<MoveDimensionResult>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MoveDimensionResult {
#[serde(rename = "spreadsheet_token")]
pub spreadsheet_token: String,
#[serde(rename = "moved_range")]
pub moved_range: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ReplaceRangeParams {
#[serde(rename = "range")]
pub range: String,
#[serde(rename = "replace_rule")]
pub replace_rule: String,
#[serde(rename = "replace_option")]
pub replace_option: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ReplaceRangeResponse {
pub data: Option<ReplaceRangeResult>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ReplaceRangeResult {
#[serde(rename = "spreadsheet_token")]
pub spreadsheet_token: String,
#[serde(rename = "replaced_range")]
pub replaced_range: String,
#[serde(rename = "replaced_count")]
pub replaced_count: i32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FindReplaceParams {
#[serde(rename = "range")]
pub range: String,
#[serde(rename = "find")]
pub find: String,
#[serde(rename = "replace")]
pub replace: String,
#[serde(rename = "find_option")]
pub find_option: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FindReplaceResponse {
pub data: Option<FindReplaceResult>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FindReplaceResult {
#[serde(rename = "spreadsheet_token")]
pub spreadsheet_token: String,
#[serde(rename = "find_range")]
pub find_range: String,
#[serde(rename = "find_count")]
pub find_count: i32,
#[serde(rename = "replace_count")]
pub replace_count: i32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MergeCellsParams {
#[serde(rename = "range")]
pub range: String,
#[serde(rename = "merge_type")]
pub merge_type: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MergeCellsResponse {
pub data: Option<MergeCellsResult>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MergeCellsResult {
#[serde(rename = "spreadsheet_token")]
pub spreadsheet_token: String,
#[serde(rename = "merge_range")]
pub merge_range: String,
#[serde(rename = "merge_type")]
pub merge_type: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UnmergeCellsParams {
#[serde(rename = "range")]
pub range: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UnmergeCellsResponse {
pub data: Option<UnmergeCellsResult>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UnmergeCellsResult {
#[serde(rename = "spreadsheet_token")]
pub spreadsheet_token: String,
#[serde(rename = "unmerge_range")]
pub unmerge_range: String,
}
#[cfg(test)]
mod tests {
use serde_json;
#[test]
fn test_serialization_roundtrip() {
let json = r#"{"test": "value"}"#;
assert!(serde_json::from_str::<serde_json::Value>(json).is_ok());
}
#[test]
fn test_deserialization_from_json() {
let json = r#"{"field": "data"}"#;
let value: serde_json::Value = serde_json::from_str(json).unwrap();
assert_eq!(value["field"], "data");
}
}