pub struct Collection<D> { /* private fields */ }Expand description
A collection’s dispatchers.
Implementations§
Source§impl<D: Clone + Send + Sync + 'static> Collection<D>
impl<D: Clone + Send + Sync + 'static> Collection<D>
Sourcepub fn new<F, Fut, E>(page: F) -> Self
pub fn new<F, Fut, E>(page: F) -> Self
A collection read through page, which receives the identifier of
what the collection belongs to and a cursor, and returns that page, or
None when there is no such collection.
Without Collection::first_cursor, the collection is one document:
page is called once, with no cursor, and every item is in it.
Sourcepub fn unordered(self) -> Self
pub fn unordered(self) -> Self
Serve it as a Collection, whose pages are CollectionPages and
whose members are items, rather than ordered: for a collection
whose order means nothing, such as an account’s featured hashtags or
who liked a post.
Sourcepub fn context(
self,
context: impl Fn(&[Value]) -> Value + Send + Sync + 'static,
) -> Self
pub fn context( self, context: impl Fn(&[Value]) -> Value + Send + Sync + 'static, ) -> Self
The @context of the collection and its pages, from the members a
document has (none, for a collection that only links its pages):
for an application whose context says what its members use, as
Mastodon’s names Hashtag only for a collection of hashtags that
has any. Without it, a document gets default_context.
Sourcepub fn page_query(
self,
to_query: impl Fn(&str) -> String + Send + Sync + 'static,
from_query: impl Fn(&str) -> Option<String> + Send + Sync + 'static,
) -> Self
pub fn page_query( self, to_query: impl Fn(&str) -> String + Send + Sync + 'static, from_query: impl Fn(&str) -> Option<String> + Send + Sync + 'static, ) -> Self
Write a page’s cursor into its URI’s query, and read it back, with
to_query and from_query, rather than as ?cursor=: for a
collection whose pages peers already know by a query of their own,
such as Mastodon’s outbox at ?page=true&max_id=. to_query gives
the whole query for a cursor; from_query is given a request’s
whole query, and says which page it asks for, or None for the
collection itself.
Sourcepub fn count_pages(self) -> Self
pub fn count_pages(self) -> Self
Say totalItems on each page as well as on the collection, from the
counter, as Mastodon’s followers and following pages do.
Sourcepub fn count<F, Fut, E>(self, count: F) -> Self
pub fn count<F, Fut, E>(self, count: F) -> Self
How many items the collection has, for totalItems.
Sourcepub fn first_cursor<F, Fut, E>(self, first: F) -> Self
pub fn first_cursor<F, Fut, E>(self, first: F) -> Self
Where the collection starts, which makes it paged; None when there is
no such collection.
Sourcepub fn last_cursor<F, Fut, E>(self, last: F) -> Self
pub fn last_cursor<F, Fut, E>(self, last: F) -> Self
The cursor of its last page, for last.
Sourcepub fn uri<F, Fut, E>(self, uri: F) -> Self
pub fn uri<F, Fut, E>(self, uri: F) -> Self
The collection’s own URI, when it is not the one it was asked at: an
actor served under two templates, as Mastodon serves an account at
/users/{username} and /ap/users/{id}, names each of its collections
by one of them. None keeps the URI of the template it was asked at.
The collection and its pages are named, and linked, by this URI.