Skip to main content

long

Macro long 

Source
macro_rules! long {
    (E $degrees:expr, $minutes:expr, $seconds:expr) => { ... };
    (W $degrees:expr, $minutes:expr, $seconds:expr) => { ... };
    ($degrees:expr, $minutes:expr, $seconds:expr) => { ... };
    (E $degrees:expr, $minutes:expr) => { ... };
    (W $degrees:expr, $minutes:expr) => { ... };
    ($degrees:expr, $minutes:expr) => { ... };
    (E $degrees:expr) => { ... };
    (W $degrees:expr) => { ... };
    ($degrees:expr) => { ... };
}
Expand description

Ergonomic constructor for Longitude values.

All forms .unwrap() internally — they are intended for compile-time-known constants and tests where invalid input is a bug. Use Longitude::new when you need to handle validation errors.

FormExampleMeaning
long!(d)long!(2)2° E
long!(d, m)long!(2, 21)2° 21′ E
long!(d, m, s)long!(2, 21, 8.0)2° 21′ 8″ E
long!(E d, …) / long!(W d, …)long!(W 73, 59, 8.4)explicit hemisphere

The E/W prefix forms take the absolute value of the degree argument and apply the sign matching the direction.

§Examples

use lat_long::{Angle, Longitude, long};

let lon = long!(2, 21, 8.0);
assert!(lon.is_eastern());
assert_eq!(lon.degrees(), 2);