Struct tzf_rs::FuzzyFinder

source ·
pub struct FuzzyFinder { /* private fields */ }
Expand description

FuzzyFinder blazing fast for most places on earth, use a preindex data. Not work for places around borders.

FuzzyFinder store all preindex’s tiles data in a HashMap, It iterate all zoom levels for input’s longitude and latitude to build map key to to check if in map.

It’s is very fast and use about 400ns to check if has preindex. It work for most places on earth and here is a quick loop of preindex data:

Implementations§

source§

impl FuzzyFinder

source

pub fn from_pb(tzs: PreindexTimezones) -> Self

source

pub fn get_tz_name(&self, lng: f64, lat: f64) -> &str

Retrieves the time zone name for the given longitude and latitude.

§Arguments
  • lng - Longitude
  • lat - Latitude
§Example:
use tzf_rs::FuzzyFinder;

let finder = FuzzyFinder::new();
assert_eq!("Asia/Shanghai", finder.get_tz_name(116.3883, 39.9289));
§Panics
  • Panics if lng or lat is out of range.
  • Panics if lng or lat is not a number.
source

pub fn get_tz_names(&self, lng: f64, lat: f64) -> Vec<&str>

source

pub fn data_version(&self) -> &str

Gets the version of the data used by this FuzzyFinder.

§Returns

The version of the data used by this FuzzyFinder as a &str.

§Example:
use tzf_rs::FuzzyFinder;

let finder = FuzzyFinder::new();
println!("{:?}", finder.data_version());
source

pub fn new() -> Self

Creates a new, empty FuzzyFinder.

use tzf_rs::FuzzyFinder;

let finder = FuzzyFinder::default();

Trait Implementations§

source§

impl Default for FuzzyFinder

source§

fn default() -> Self

Creates a new, empty FuzzyFinder.

use tzf_rs::FuzzyFinder;

let finder = FuzzyFinder::default();

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.