pub struct Items {
pub limit: Option<u64>,
pub bbox: Option<Bbox>,
pub datetime: Option<String>,
pub fields: Option<Fields>,
pub sortby: Vec<Sortby>,
pub filter_crs: Option<String>,
pub filter: Option<Filter>,
pub query: Option<Map<String, Value>>,
pub additional_fields: Map<String, Value>,
}Expand description
Parameters for the items endpoint from STAC API - Features.
Fields§
§limit: Option<u64>The maximum number of results to return (page size).
bbox: Option<Bbox>Requested bounding box.
datetime: Option<String>Single date+time, or a range (‘/’ separator), formatted to RFC 3339, section 5.6.
Use double dots .. for open date ranges.
fields: Option<Fields>Include/exclude fields from item collections.
sortby: Vec<Sortby>Fields by which to sort results.
filter_crs: Option<String>Recommended to not be passed, but server must only accept http://www.opengis.net/def/crs/OGC/1.3/CRS84 as a valid value, may reject any others
filter: Option<Filter>CQL2 filter expression.
query: Option<Map<String, Value>>Additional filtering based on properties.
It is recommended to use the filter extension instead.
additional_fields: Map<String, Value>Additional fields.
Implementations§
Source§impl Items
impl Items
Sourcepub fn valid(self) -> Result<Items>
pub fn valid(self) -> Result<Items>
Runs a set of validity checks on this query and returns an error if it is invalid.
Returns the items, unchanged, if it is valid.
§Examples
use stac::api::Items;
let items = Items::default().valid().unwrap();Sourcepub fn matches(&self, item: &Item) -> Result<bool>
pub fn matches(&self, item: &Item) -> Result<bool>
Returns true if this items structure matches the given item.
§Examples
use stac::api::Items;
use stac::Item;
assert!(Items::default().matches(&Item::new("an-id")).unwrap());Sourcepub fn bbox_matches(&self, item: &Item) -> Result<bool>
pub fn bbox_matches(&self, item: &Item) -> Result<bool>
Returns true if this item’s geometry matches this search’s bbox.
If stac is not built with the geo feature, this will return an error.
§Examples
use stac::api::Search;
use stac::Item;
use geojson::{Geometry, Value};
let mut search = Search::new();
let mut item = Item::new("item-id");
assert!(search.bbox_matches(&item).unwrap());
search.bbox = Some(vec![-110.0, 40.0, -100.0, 50.0].try_into().unwrap());
assert!(!search.bbox_matches(&item).unwrap());
item.set_geometry(Geometry::new_point(vec![-105.1, 41.1]));
assert!(search.bbox_matches(&item).unwrap());Sourcepub fn datetime_matches(&self, item: &Item) -> Result<bool>
pub fn datetime_matches(&self, item: &Item) -> Result<bool>
Returns true if this item’s datetime matches this items structure.
§Examples
use stac::api::Search;
use stac::Item;
let mut search = Search::new();
let mut item = Item::new("item-id"); // default datetime is now
assert!(search.datetime_matches(&item).unwrap());
search.datetime = Some("../2023-10-09T00:00:00Z".to_string());
assert!(!search.datetime_matches(&item).unwrap());
item.properties.datetime = Some("2023-10-08T00:00:00Z".parse().unwrap());
assert!(search.datetime_matches(&item).unwrap());Sourcepub fn query_matches(&self, _: &Item) -> Result<bool>
pub fn query_matches(&self, _: &Item) -> Result<bool>
Returns true if this item’s matches this search query.
Currently unsupported, always raises an error if query is set.
§Examples
use stac::api::Search;
use stac::Item;
let mut search = Search::new();
let mut item = Item::new("item-id");
assert!(search.query_matches(&item).unwrap());
search.query = Some(Default::default());
assert!(search.query_matches(&item).is_err());Sourcepub fn filter_matches(&self, _: &Item) -> Result<bool>
pub fn filter_matches(&self, _: &Item) -> Result<bool>
Returns true if this item matches this search’s filter.
Currently unsupported, always raises an error if filter is set.
§Examples
use stac::api::Search;
use stac::Item;
let mut search = Search::new();
let mut item = Item::new("item-id");
assert!(search.filter_matches(&item).unwrap());
search.filter = Some(Default::default());
assert!(search.filter_matches(&item).is_err());Sourcepub fn search_collection(self, collection_id: impl ToString) -> Search
pub fn search_collection(self, collection_id: impl ToString) -> Search
Converts this items object to a search in the given collection.
§Examples
use stac::api::Items;
let items = Items {
datetime: Some("2023".to_string()),
..Default::default()
};
let search = items.search_collection("collection-id");
assert_eq!(search.collections, vec!["collection-id"]);Sourcepub fn into_cql2_json(self) -> Result<Items>
pub fn into_cql2_json(self) -> Result<Items>
Converts the filter to cql2-json, if it is set.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Items
impl<'de> Deserialize<'de> for Items
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 Fields for Items
impl Fields for Items
Source§fn fields_mut(&mut self) -> &mut Map<String, Value>
fn fields_mut(&mut self) -> &mut Map<String, Value>
Source§fn set_field<S: Serialize>(
&mut self,
key: impl ToString,
value: S,
) -> Result<Option<Value>>
fn set_field<S: Serialize>( &mut self, key: impl ToString, value: S, ) -> Result<Option<Value>>
Source§fn fields_with_prefix<D: DeserializeOwned>(&self, prefix: &str) -> Result<D>
fn fields_with_prefix<D: DeserializeOwned>(&self, prefix: &str) -> Result<D>
Source§fn set_fields_with_prefix<S: Serialize>(
&mut self,
prefix: &str,
value: S,
) -> Result<()>
fn set_fields_with_prefix<S: Serialize>( &mut self, prefix: &str, value: S, ) -> Result<()>
Source§fn remove_fields_with_prefix(&mut self, prefix: &str)
fn remove_fields_with_prefix(&mut self, prefix: &str)
Auto Trait Implementations§
impl Freeze for Items
impl RefUnwindSafe for Items
impl Send for Items
impl Sync for Items
impl Unpin for Items
impl UnsafeUnpin for Items
impl UnwindSafe for Items
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FromJson for Twhere
T: DeserializeOwned,
impl<T> FromJson for Twhere
T: DeserializeOwned,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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