use crate::{inch::In, unit::Unit};
use serde::{Deserialize, Serialize};
pub const ANSI_LETTER: Sze = Sze {
width: In(8.5),
height: In(11.0),
};
#[derive(Debug, Default, Clone, Copy, Deserialize, Serialize, PartialEq, PartialOrd)]
pub struct Sze {
pub width: In,
pub height: In,
}
impl Sze {
pub fn new(width: In, height: In) -> Self {
Self { width, height }
}
pub fn pt(&self) -> (f32, f32) {
(self.width.pt(), self.height.pt())
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::inch::In;
use serde_json;
#[test]
fn test_round_trip_serialize_deserialize() {
let original = Sze {
width: In(8.5),
height: In(11.0),
};
let serialized = serde_json::to_string(&original).expect("Failed to serialize");
let deserialized: Sze = serde_json::from_str(&serialized).expect("Failed to deserialize");
assert_eq!(original, deserialized);
}
}