Skip to content

Commit bc261d1

Browse files
authored
Merge pull request #22 from alberdingk-thijm/master
Add serde support
2 parents 7e7bd89 + 2e57e3c commit bc261d1

22 files changed

+29
-0
lines changed

Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ authors = ["James O'Cull <jocull@delmarsd.com>",
55
"Jonathan Pallant <github@thejpster.org.uk>",
66
"Hannah McLaughlin <h@mcla.ug>",
77
"Danilo Bargen <mail@dbrgn.ch>",
8+
"Tim Alberdingk Thijm <tthijm@princeton.edu>",
89
]
910
documentation = "https://docs.rs/crate/measurements"
1011
repository = "https://github.com/thejpster/rust-measurements"
@@ -15,3 +16,6 @@ readme = "README.md"
1516

1617
[features]
1718
no_std = []
19+
20+
[dependencies]
21+
serde = { version = "1.0", optional = true, features = ["derive"] }

src/acceleration.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use super::length;
2222
/// println!("You accelerated over {} at an average of {}", track, accel);
2323
///}
2424
/// ```
25+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
2526
#[derive(Copy, Clone, Debug)]
2627
pub struct Acceleration {
2728
meters_per_second_per_second: f64,

src/angle.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use super::measurement::*;
1414
/// let slice = whole_cake / pieces;
1515
/// println!("Each slice will be {} degrees", slice.as_degrees());
1616
/// ```
17+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1718
#[derive(Copy, Clone, Debug)]
1819
pub struct Angle {
1920
radians: f64,

src/angular_velocity.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use ::PI;
1414
/// let engine_speed = AngularVelocity::from_rpm(9000.0);
1515
/// let sparks_per_second = (engine_speed.as_hertz() / 2.0) * cylinders;
1616
/// ```
17+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1718
#[derive(Copy, Clone, Debug)]
1819
pub struct AngularVelocity {
1920
radians_per_second: f64,

src/area.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const SQUARE_METER_ACRE_FACTOR: f64 = 1.0 / 4046.86;
1818
/// let acres = football_field.as_acres();
1919
/// println!("There are {} acres in a football field.", acres);
2020
/// ```
21+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
2122
#[derive(Copy, Clone, Debug)]
2223
pub struct Area {
2324
square_meters: f64,

src/current.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use super::measurement::*;
1515
/// let u_a = amperes.as_microamperes();
1616
/// println!("35 mA correspond to {} A or {} µA", a, u_a);
1717
/// ```
18+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1819
#[derive(Copy, Clone, Debug)]
1920
pub struct Current {
2021
amperes: f64,

src/data.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const OCTET_TEBIOCTET_FACTOR: f64 = 1024.0 * 1024.0 * 1024.0 * 1024.0;
2929
/// let octets = file_size.as_octets();
3030
/// println!("There are {} octets in that file.", octets);
3131
/// ```
32+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
3233
#[derive(Copy, Clone, Debug)]
3334
pub struct Data {
3435
octets: f64,

src/energy.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use super::measurement::*;
1313
/// let energy = Energy::from_kcalories(2500.0);
1414
/// println!("Some say a health adult male should consume {} per day", energy);
1515
/// ```
16+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
1617
#[derive(Copy, Clone, Debug)]
1718
pub struct Energy {
1819
joules: f64,

src/force.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ pub const DYNES_PER_NEWTON: f64 = 1e5;
2828
/// "One metric ton exerts a force of {} due to gravity",
2929
/// force);
3030
/// ```
31+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
3132
#[derive(Copy, Clone, Debug)]
3233
pub struct Force {
3334
newtons: f64,

src/frequency.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ pub const HERTZ_TERAHERTZ_FACTOR: f64 = 1e-12;
2929
/// let radio_station = Frequency::from_hertz(101.5e6);
3030
/// println!("Tune to {}.", radio_station);
3131
/// ```
32+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
3233
#[derive(Copy, Clone, Debug)]
3334
pub struct Frequency {
3435
hertz: f64,

0 commit comments

Comments
 (0)