Skip to main content

Collection

Struct Collection 

Source
pub struct Collection<D> { /* private fields */ }
Expand description

A collection’s dispatchers.

Implementations§

Source§

impl<D: Clone + Send + Sync + 'static> Collection<D>

Source

pub fn new<F, Fut, E>(page: F) -> Self
where F: Fn(Context<D>, String, Option<String>) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Option<Page>, E>> + Send + 'static, E: Into<Error>,

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.

Source

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.

Source

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.

Source

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.

Source

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.

Source

pub fn count<F, Fut, E>(self, count: F) -> Self
where F: Fn(Context<D>, String) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Option<u64>, E>> + Send + 'static, E: Into<Error>,

How many items the collection has, for totalItems.

Source

pub fn first_cursor<F, Fut, E>(self, first: F) -> Self
where F: Fn(Context<D>, String) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Option<First>, E>> + Send + 'static, E: Into<Error>,

Where the collection starts, which makes it paged; None when there is no such collection.

Source

pub fn last_cursor<F, Fut, E>(self, last: F) -> Self
where F: Fn(Context<D>, String) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Option<String>, E>> + Send + 'static, E: Into<Error>,

The cursor of its last page, for last.

Source

pub fn uri<F, Fut, E>(self, uri: F) -> Self
where F: Fn(Context<D>, String) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Option<Url>, E>> + Send + 'static, E: Into<Error>,

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.

Trait Implementations§

Source§

impl<D> Clone for Collection<D>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<D> !RefUnwindSafe for Collection<D>

§

impl<D> !UnwindSafe for Collection<D>

§

impl<D> Freeze for Collection<D>

§

impl<D> Send for Collection<D>

§

impl<D> Sync for Collection<D>

§

impl<D> Unpin for Collection<D>

§

impl<D> UnsafeUnpin for Collection<D>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more