Peck lib. A set of library and type functions. ```rust pub mod str { pub const OSPATHSEPARATOR: &str = if cfg!(windows) { r"\" } else { "/" }; pub const NUMSCHARSET: &str = r"0123456789"; pub const FLOATCHARSET: &str = r"0.-123456789"; pub const ABSFLOATCHARSET: &str = r".0123456789"; pub fn trunc(input: &str, length: u8) -> &str {} }

pub mod usize { pub const APPROXCMINARCSECOND: usize = 3087usize; pub const ARCSECONDSIN360DEGREES: usize = 1296000usize; pub const ARCSECONDSIN360DEGREESINDEXED: usize = 1295999usize; pub const ARCSECONDSIN180DEGREES: usize = 648000usize; pub const ARCSECONDSIN180DEGREESINDEXED: usize = 647999usize; }

pub mod f64 { pub const LATITUDELIMIT: f64 = 90.0f64; //latitude (-90 to 90), lower = -LATITUDELIMIT, upper = LATITUDELIMIT pub const LONGITUDELIMIT: f64 = 180.0f64; //longitude (-180 to 180), lower = -LONGITUDELIMIT, upper = LONGITUDELIMIT pub const ARCSECONDSIN360DEGREES: f64 = 1296000.0f64; pub const ARCSECONDSIN180DEGREES: f64 = 648000.0f64; pub const EARTHRADIUSKM: f64 = 6378.137f64; pub const EARTHRADIUSM: f64 = 6378137.0f64; pub const DEGTORAD: f64 = 0.017453292519943295f64; pub const RADTODEG: f64 = 57.29577951308232f64; pub fn rhsexact(input: f64) -> f64 {} pub fn split(input: f64) -> (f64, f64) {} pub fn splitabs(input: f64) -> (f64, f64) {} pub fn toradians(inputdegrees: f64) -> f64 {} pub fn todegrees(inputradians: f64) -> f64 {} pub fn normalise(input: f64, min: f64, max: f64) -> f64 {} pub fn normalisedtoindex(input: f64, max: usize) -> usize {} pub fn indexifylat(lat: f64) -> f64 {} pub fn indexifylong(long: f64) -> f64 {} pub fn indexifylatlong(lat: f64, long: f64) -> (f64, f64) {} pub fn trunc(input: f64, decimalplaces: u8) -> f64 {} pub fn truncsafe(input: f64, decimalplaces: u8) -> Result {} pub fn truncexact(input: f64, decimalplaces: u8) -> f64 {} pub fn approxequalf64(a: f64, b: f64, decimalplaces: u8) -> bool {} pub fn approxequalinfalliblef64(a: f64, b: f64, decimalplaces: u8) -> bool {} }

pub mod f32 { pub const LATITUDELIMIT: f32 = 90.0f32; //latitude (-90 to 90), lower = -LATITUDELIMIT, upper = LATITUDELIMIT pub const LONGITUDELIMIT: f32 = 180.0f32; //longitude (-180 to 180), lower = -LONGITUDELIMIT, upper = LONGITUDELIMIT pub const ARCSECONDSIN360DEGREES: f32 = 1296000.0f32; pub const ARCSECONDSIN180DEGREES: f32 = 648000.0f32; pub const EARTHRADIUSKM: f32 = 6378.137f32; pub const EARTHRADIUSM: f32 = 6378137.0f32; pub const DEGTORAD: f32 = 0.017453292f32; pub const RADTODEG: f32 = 57.29578f32; //57.295776 pub fn rhsexact(input: f32) -> f32 {} pub fn split(input: f32) -> (f32, f32) {} pub fn splitabs(input: f32) -> (f32, f32) {} pub fn toradians(inputdegrees: f32) -> f32 {} pub fn todegrees(inputradians: f32) -> f32 {} pub fn normalise(input: f32, min: f32, max: f32) -> f32 {} pub fn normalisedtoindex(input: f32, max: usize) -> usize {} pub fn indexifylat(lat: f32) -> f32 {} pub fn indexifylong(long: f32) -> f32 {} pub fn indexifylatlong(lat: f32, long: f32) -> (f32, f32) {} pub fn trunc(input: f32, decimalplaces: u8) -> f32 {} pub fn truncsafe(input: f32, decimalplaces: u8) -> Result {} pub fn truncexact(input: f32, decimalplaces: u8) -> f32 {} pub fn approxequalf32(a: f32, b: f32, decimalplaces: u8) -> bool {} pub fn approxequalinfalliblef32(a: f32, b: f32, decimalplaces: u8) -> bool {} }

```