Skip to main content

CountColumn

Struct CountColumn 

Source
pub struct CountColumn<M> { /* private fields */ }
Expand description

A column counting the records of a Deferred has_many field, which declares the field’s include so every page that renders it loads the records.

use tablo_core::{CountColumn, relation};

CountColumn::new(relation!(Post.comments));

The header and the column’s name are the field’s name, capitalized, until label replaces both.

The count is the length of the loaded list: a page loads every related record of every row it counts, and the related resource’s query and policy do not apply, so the count includes records its own list hides.

Implementations§

Source§

impl<M> CountColumn<M>
where M: Model,

Source

pub fn new<T>(relation: RelationLens<M, Deferred<Vec<T>>>) -> Self
where T: Model + 'static, M: 'static,

Declare a column counting the records relation loads.

Source

pub fn label(self, label: impl Into<String>) -> Self

Replace the label the field’s name gives it, and name the column after the label, as a ComputedColumn is: two columns over one relation need two labels.

Source

pub fn width(self, width: ColumnWidth) -> Self

Declare this column’s width.

Trait Implementations§

Source§

impl<M> Clone for CountColumn<M>

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
Source§

impl<M> Column<M> for CountColumn<M>
where M: Model + Send + Sync + 'static,

Source§

fn name(&self) -> &str

The column’s identifier, distinct within its table.
Source§

fn label(&self) -> &str

The header text.
Source§

fn text(&self, cx: &Cx, row: &M) -> String

The row’s value as plain text.
Source§

fn column_width(&self) -> ColumnWidth

The width the column claims.
Source§

fn includes(&self) -> Includes<M>

The relations text, cell and entry read.
Source§

fn cell<'a>(&self, cx: &'a Cx, row: &M) -> BoxView<'a>

The row’s table cell.
Source§

fn entry<'a>(&self, cx: &'a Cx, row: &M) -> BoxView<'a>

The record’s entry on a detail page: the label over the cell.
Source§

fn is_searchable(&self) -> bool

Whether the column joins the table’s search.
Source§

fn search_expr(&self, _term: &str) -> Option<Expr<bool>>

The predicate a search for term adds.
Source§

fn is_sortable(&self) -> bool

Whether the header links to a sort on this column.
Source§

fn order_by(&self, _descending: bool) -> Option<OrderByExpr>

The ordering a sort on this column applies.
Source§

impl<M> Debug for CountColumn<M>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<M> IntoColumns<M> for CountColumn<M>
where M: Model + Send + Sync + 'static,

Source§

impl<M> IntoDetail<M> for CountColumn<M>
where M: Model + Send + Sync + 'static,

Auto Trait Implementations§

§

impl<M> !RefUnwindSafe for CountColumn<M>

§

impl<M> !UnwindSafe for CountColumn<M>

§

impl<M> Freeze for CountColumn<M>
where Declared<M>: Freeze, Arc<dyn Fn(&M) -> Option<usize> + Send + Sync>: Freeze,

§

impl<M> Send for CountColumn<M>
where Declared<M>: Send, Arc<dyn Fn(&M) -> Option<usize> + Send + Sync>: Send,

§

impl<M> Sync for CountColumn<M>
where Declared<M>: Sync, Arc<dyn Fn(&M) -> Option<usize> + Send + Sync>: Sync,

§

impl<M> Unpin for CountColumn<M>
where Declared<M>: Unpin, Arc<dyn Fn(&M) -> Option<usize> + Send + Sync>: Unpin,

§

impl<M> UnsafeUnpin for CountColumn<M>
where Declared<M>: UnsafeUnpin, Arc<dyn Fn(&M) -> Option<usize> + Send + Sync>: UnsafeUnpin,

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
Source§

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

Source§

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

Source§

impl<T> CloneAny for T
where T: Any + Clone,

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.

Source§

impl<T> Instrument for T

Source§

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

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

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.

Source§

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

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

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