#[non_exhaustive]pub struct WyomingRequest {
pub station: String,
pub time_unix_s: i64,
pub version: WyomingVersion,
pub endpoint: Option<String>,
}Expand description
What to ask the archive for: a station, the sounding’s nominal hour and its version.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.station: StringThe station’s WMO number (such as 72364), or the name the archive knows it by.
time_unix_s: i64The sounding’s nominal time, a whole UTC hour (usually 00 or 12), seconds since the Unix epoch. The balloon is released about an hour before.
version: WyomingVersionWhich version to ask for.
endpoint: Option<String>Another server with the same interface, instead of ENDPOINT: an address with no query
(?) or fragment (#), to which the request’s own query is added.
Implementations§
Source§impl WyomingRequest
impl WyomingRequest
Sourcepub fn new(station: impl Into<String>, time_unix_s: i64) -> Self
pub fn new(station: impl Into<String>, time_unix_s: i64) -> Self
A request for station’s coded-message sounding at the whole hour time_unix_s.
Sourcepub fn latest_before(station: impl Into<String>, launch_unix_s: i64) -> Self
pub fn latest_before(station: impl Into<String>, launch_unix_s: i64) -> Self
A request for the latest 00 or 12 UTC sounding at or before launch_unix_s (seconds since
the Unix epoch): the one a launch at that time would have had. Near its nominal hour a
sounding may still be filling in; WyomingRequest::source keeps such an answer fresh
for an hour only.
Sourcepub fn url(&self) -> Result<String, WyomingError>
pub fn url(&self) -> Result<String, WyomingError>
The URL: …?datetime=YYYY-MM-DD%20HH:00:00&id=<station>&type=TEXT:CSV&src=<version>.
The URL is the cache key, and it holds no coordinates: the caller names the station, and nothing here picks one from a site’s latitude and longitude. A site kept in radians can’t change it.
§Errors
WyomingError::Request when the station is empty, longer than 16 characters or not
letters and digits, the time is not a whole hour from 1970 to 9999, or the endpoint is
empty or has a ? or #.
Sourcepub fn source(&self, now_s: u64) -> Source
pub fn source(&self, now_s: u64) -> Source
The cache’s view of the source at now_s (seconds since the Unix epoch): the archive’s
name, ATTRIBUTION, and how long a cached answer stays fresh.
Until SETTLE_S after the nominal hour the sounding may still be filling in, so an
answer stays fresh for YOUNG_TTL_S. After that, only an answer fetched after the
sounding settled is fresh, for up to SETTLED_TTL_S: a copy fetched while it was young
is fetched again online (and still served offline, marked stale).
Trait Implementations§
Source§impl Clone for WyomingRequest
impl Clone for WyomingRequest
Source§fn clone(&self) -> WyomingRequest
fn clone(&self) -> WyomingRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WyomingRequest
impl Debug for WyomingRequest
Source§impl<'de> Deserialize<'de> for WyomingRequest
impl<'de> Deserialize<'de> for WyomingRequest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for WyomingRequest
impl PartialEq for WyomingRequest
Source§fn eq(&self, other: &WyomingRequest) -> bool
fn eq(&self, other: &WyomingRequest) -> bool
self and other values to be equal, and is used by ==.