Struct tz_search::TzSearch
[-] [+]
[src]
pub struct TzSearch { // some fields omitted }
All the information required for efficient time-zone lookups.
Unless you need absolutely strict control over memory use, you
probably want to call the top-level lookup
, rather than going
via this.
Methods
impl TzSearch
fn new() -> TzSearch
Create a new TzSearch
.
This is very expensive: the initialisation routine takes a
long time (15 ms, compared to 150 *nano*seconds for lookup
itself), and the resulting structure uses a lot of
memory. Hence, this should be called as rarely as possible.
The free-standing lookup
function internally manages
creating exactly one of these, and should be preferred.
fn lookup(&self, lat: f64, long: f64) -> Option<String>
Attempt to compute the timezone that the point lat
, long
lies in.
The latitude lat
should lie in the range [-90, 90]
with
negative representing south, and the longitude should lie in
the range [-180, 180]
with negative representing west. This
will fail (return None
) if the point lies in the ocean.
See also: the lookup
function at the top-level.
Panics
lookup
will panic if either of the two ranges above are
violated.
Examples
let s = tz_search::TzSearch::new(); let (lat, long) = (-33.8885, 151.1908); assert_eq!(s.lookup(lat, long).unwrap(), "Australia/Sydney");