pub struct StationInfo { /* private fields */ }
Expand description
Station information including location data and identification number.
Implementations§
Source§impl StationInfo
impl StationInfo
Sourcepub fn new_with_values<S, T, U, V, W>(
station_num: T,
station_id: S,
location: U,
elevation: V,
) -> Self
pub fn new_with_values<S, T, U, V, W>( station_num: T, station_id: S, location: U, elevation: V, ) -> Self
Create a new StationInfo
object.
§Arguments
station_num: The USAF station identifier, or None.
location: The latitude and longitude as a tuple, or None.
elevation: The elevation of the station in meters.
§Examples
use metfor::{Meters, Feet};
use sounding_analysis::StationInfo;
use optional::{some, none};
let _stn = StationInfo::new_with_values(12345, None, (45.2,-113.5), Meters(2000.0));
let _stn = StationInfo::new_with_values(12345, None, (45.2,-113.5), Feet(2000.0));
let _stn = StationInfo::new_with_values(12345, None, (45.2,-113.5), some(Meters(2000.0)));
let _stn = StationInfo::new_with_values(12345, None, (45.2,-113.5), some(Feet(2000.0)));
let _stn = StationInfo::new_with_values(12345, None, Some((45.2,-113.5)), Meters(2000.0));
let _stn = StationInfo::new_with_values(12345, None, Some((45.2,-113.5)), Feet(2000.0));
let _stn = StationInfo::new_with_values(12345, None, Some((45.2,-113.5)), some(Meters(2000.0)));
let _stn = StationInfo::new_with_values(12345, None, Some((45.2,-113.5)), some(Feet(2000.0)));
let _stn = StationInfo::new_with_values(Some(12345), None, None, Meters(2000.0));
let _stn = StationInfo::new_with_values(Some(12345), None, None, Feet(2000.0));
let _stn = StationInfo::new_with_values(None, None, (45.2,-113.5), some(Meters(2000.0)));
let _stn = StationInfo::new_with_values(None, None, (45.2,-113.5), some(Feet(2000.0)));
// Note that lat-lon is an `Option` and not an `Optioned`
let _stn = StationInfo::new_with_values(some(12345), None, None, none::<Feet>());
let _stn = StationInfo::new_with_values(some(12345), None, None, none::<Meters>());
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new object with default values.
§Examples
use sounding_analysis::StationInfo;
assert!(StationInfo::new().station_num().is_none());
assert!(StationInfo::new().location().is_none());
assert!(StationInfo::new().elevation().is_none());
Sourcepub fn with_station<T>(self, number: T) -> Self
pub fn with_station<T>(self, number: T) -> Self
Builder method to add a station number.
§Examples
use sounding_analysis::StationInfo;
assert_eq!(StationInfo::new().with_station(12345).station_num().unwrap(), 12345);
assert_eq!(StationInfo::new().with_station(Some(12345)).station_num().unwrap(), 12345);
Sourcepub fn with_lat_lon<T>(self, coords: T) -> Self
pub fn with_lat_lon<T>(self, coords: T) -> Self
Builder method to add a location.
§Examples
use sounding_analysis::StationInfo;
assert_eq!(
StationInfo::new().with_lat_lon((45.0, -116.0)).location().unwrap(), (45.0, -116.0));
assert_eq!(
StationInfo::new().with_lat_lon(Some((45.0, -116.0)))
.location()
.unwrap(),
(45.0, -116.0));
Sourcepub fn with_elevation<T, U>(self, elev: T) -> Self
pub fn with_elevation<T, U>(self, elev: T) -> Self
Builder method to add elevation.
§Examples
use metfor::{Meters, Feet, Km};
use sounding_analysis::StationInfo;
use optional::{some, none};
let _info = StationInfo::new().with_elevation(Feet(200.0));
let _info = StationInfo::new().with_elevation(Meters(200.0));
let _info = StationInfo::new().with_elevation(Km(2.0));
let _info = StationInfo::new().with_elevation(some(Feet(200.0)));
let _info = StationInfo::new().with_elevation(some(Meters(200.0)));
let _info = StationInfo::new().with_elevation(some(Km(2.0)));
let _info = StationInfo::new().with_elevation(none::<Feet>());
let _info = StationInfo::new().with_elevation(none::<Meters>());
let _info = StationInfo::new().with_elevation(none::<Km>());
Sourcepub fn with_station_id<T>(self, station_id: T) -> Self
pub fn with_station_id<T>(self, station_id: T) -> Self
Builder method to add a station ID. These are usually 3 or 4 alphanumeric codes that may not be unique to the location like the station number is supposed to be.
Sourcepub fn station_num(&self) -> Optioned<i32>
pub fn station_num(&self) -> Optioned<i32>
station number, USAF number, eg 727730
Sourcepub fn elevation(&self) -> Optioned<Meters>
pub fn elevation(&self) -> Optioned<Meters>
Elevation in meters, this may be in model terrain, not necessarily the same as the real world.
Sourcepub fn station_id(&self) -> Option<&str>
pub fn station_id(&self) -> Option<&str>
Get the station ID that was used with this station. This is normally a series of 3 or 4 letters. It is not unique to the location like the station number is supposed to be.
§Examples
use sounding_analysis::StationInfo;
let info = StationInfo::new().with_station_id("KXLY".to_owned());
assert_eq!(Some("KXLY"), info.station_id());
Trait Implementations§
Source§impl Clone for StationInfo
impl Clone for StationInfo
Source§fn clone(&self) -> StationInfo
fn clone(&self) -> StationInfo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for StationInfo
impl Debug for StationInfo
Source§impl Default for StationInfo
impl Default for StationInfo
Source§fn default() -> StationInfo
fn default() -> StationInfo
Source§impl PartialEq for StationInfo
impl PartialEq for StationInfo
impl StructuralPartialEq for StationInfo
Auto Trait Implementations§
impl Freeze for StationInfo
impl RefUnwindSafe for StationInfo
impl Send for StationInfo
impl Sync for StationInfo
impl Unpin for StationInfo
impl UnwindSafe for StationInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more