pub struct RecordQuery {
pub q: Option<String>,
pub status: Option<RecordQueryStatus>,
pub sort: Option<RecordSort>,
pub page: Option<u32>,
pub size: Option<u32>,
pub all_versions: bool,
pub communities: Vec<String>,
pub resource_type: Option<String>,
pub subtype: Option<String>,
pub custom: Vec<(String, String)>,
}Expand description
Typed query parameters for the records search API.
Fields§
§q: Option<String>Free-text query string.
status: Option<RecordQueryStatus>Record status filter.
sort: Option<RecordSort>Sort order.
page: Option<u32>1-based page number.
size: Option<u32>Page size.
all_versions: boolWhether to include all versions in the search results.
communities: Vec<String>Community filters.
resource_type: Option<String>Resource type filter.
subtype: Option<String>Resource subtype filter.
custom: Vec<(String, String)>Extra raw query pairs for unsupported parameters.
Implementations§
Source§impl RecordQuery
impl RecordQuery
Sourcepub fn builder() -> RecordQueryBuilder
pub fn builder() -> RecordQueryBuilder
Starts building a typed record search query.
§Examples
use zenodo_rs::RecordQuery;
let query = RecordQuery::builder()
.query("doi:\"10.5281/zenodo.42\"")
.published()
.most_recent()
.size(10)
.all_versions()
.build();
assert_eq!(query.q.as_deref(), Some("doi:\"10.5281/zenodo.42\""));
assert!(query.all_versions);Sourcepub fn into_pairs(self) -> Vec<(String, String)>
pub fn into_pairs(self) -> Vec<(String, String)>
Serializes the query into Zenodo URL parameter pairs.
§Examples
use zenodo_rs::{RecordQuery, RecordQueryStatus, RecordSort};
let pairs = RecordQuery {
q: Some("doi:\"10.5281/zenodo.123\"".into()),
status: Some(RecordQueryStatus::Published),
sort: Some(RecordSort::MostRecent),
page: Some(2),
size: Some(25),
all_versions: true,
..RecordQuery::default()
}
.into_pairs();
assert!(pairs.contains(&("q".into(), "doi:\"10.5281/zenodo.123\"".into())));
assert!(pairs.contains(&("status".into(), "published".into())));
assert!(pairs.contains(&("sort".into(), "mostrecent".into())));
assert!(pairs.contains(&("all_versions".into(), "true".into())));Trait Implementations§
Source§impl Clone for RecordQuery
impl Clone for RecordQuery
Source§fn clone(&self) -> RecordQuery
fn clone(&self) -> RecordQuery
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RecordQuery
impl Debug for RecordQuery
Source§impl Default for RecordQuery
impl Default for RecordQuery
Source§fn default() -> RecordQuery
fn default() -> RecordQuery
Returns the “default value” for a type. Read more
Source§impl PartialEq for RecordQuery
impl PartialEq for RecordQuery
Source§fn eq(&self, other: &RecordQuery) -> bool
fn eq(&self, other: &RecordQuery) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for RecordQuery
impl StructuralPartialEq for RecordQuery
Auto Trait Implementations§
impl Freeze for RecordQuery
impl RefUnwindSafe for RecordQuery
impl Send for RecordQuery
impl Sync for RecordQuery
impl Unpin for RecordQuery
impl UnsafeUnpin for RecordQuery
impl UnwindSafe for RecordQuery
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
Mutably borrows from an owned value. Read more