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.
| Form | Example | Meaning |
|---|---|---|
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);