File: si.rs

package info (click to toggle)
rust-uom 0.37.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,368 kB
  • sloc: makefile: 2
file content (42 lines) | stat: -rw-r--r-- 1,345 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//! Example showing how to use the pre-built SI system.

use uom::fmt::DisplayStyle::Abbreviation;
use uom::si::f32::*;
use uom::si::length::{centimeter, kilometer, meter};
use uom::si::time::second;
use uom::si::velocity::{kilometer_per_second, meter_per_second};

fn main() {
    // Setup length and time quantities using different units.
    let l1 = Length::new::<meter>(15.0);
    let l2 = Length::new::<centimeter>(10.0);
    let t1 = Time::new::<second>(50.0);
    let v1 = l1 / t1;
    //let error = l1 + t1; // error[E0308]: mismatched types

    // Setup re-usable format arguments.
    let m = Length::format_args(meter, Abbreviation);
    let cm = Length::format_args(centimeter, Abbreviation);
    let s = Time::format_args(second, Abbreviation);

    // Print results of simple formulas using different output units.
    println!("{} + {} = {}", m.with(l1), cm.with(l2), m.with(l1 + l2));
    println!(
        "{} + {} = {}",
        m.with(l1),
        cm.with(l2),
        (l1 + l2).into_format_args(kilometer, Abbreviation)
    );
    println!(
        "{} / {} = {}",
        m.with(l1),
        s.with(t1),
        v1.into_format_args(meter_per_second, Abbreviation)
    );
    println!(
        "{} / {} = {}",
        m.with(l1),
        s.with(t1),
        v1.into_format_args(kilometer_per_second, Abbreviation)
    );
}