[−][src]Function hdk::api::query
pub fn query(
entry_type_names: QueryArgsNames,
start: usize,
limit: usize
) -> ZomeApiResult<Vec<Address>>
Returns a list of entries from your local source chain that match a given entry type name or names.
Each name may be a plain entry type name, or a "glob"
pattern. All names and patterns are
merged into a single efficient Regular Expression for scanning.
You can select many names with patterns such as "boo*"
(match all entry types starting with
"boo"
), or "[!%]*e"
(all non-system non-name-spaced entry types ending in "e"
).
You can organize your entry types using simple name-spaces, by including "/"
in your entry type
names. For example, if you have several entry types related to fizzing a widget, you might
create entry types "fizz/bar"
, "fizz/baz"
, "fizz/qux/foo"
and "fizz/qux/boo"
. Query for
"fizz/**"
to match them all.
Use vec![], ""
, or "**"
to match all names in all name-spaces. Matching "*"
will match only
non-namespaced names.
entry_type_names: Specify type of entry(s) to retrieve, as a String or Vec
Examples
pub fn handle_my_posts_as_commited() -> ZomeApiResult<Vec<Address>> { hdk::query("post".into(), 0, 0) } pub fn all_system_plus_mine() -> ZomeApiResult<Vec<Address>> { hdk::query(vec!["[%]*","mine"].into(), 0, 0) } pub fn everything_including_namespaced_except_system() -> ZomeApiResult<Vec<Address>> { hdk::query("**/[!%]*".into(), 0, 0) }
With hdk::query_result, you can specify a package of QueryArgsOptions, and get a
variety of return values, such a vector of Headers as a Vec<ChainHeader>
:
// pub fn get_post_headers() -> ZomeApiResult<QueryResult> { // hdk::query_result("post".into(), QueryArgsOptions{ headers: true, ..Default::default()}) // }
The types of the results available depend on whether headers
and/or entries
is set:
// // headers entries // pub enum QueryResult { // ------- ------- // Addresses(Vec<Address>), // false false // Headers(Vec<ChainHeader>), // true false // Entries(Vec<(Address, Entry)>), // false true // HeadersWithEntries(Vec<(ChainHeader, Entry)>), // true true // }