pub struct TableState {
pub prefix: Option<String>,
pub search: Option<String>,
pub sort: Option<Sort>,
pub cursor: Option<Cursor>,
pub filters: BTreeMap<String, String>,
pub filters_dropped: bool,
pub group_by: Option<String>,
pub delete: Option<String>,
pub open: Option<bool>,
}Expand description
Request-scoped table state, parsed from the list’s URL query.
Fields§
§prefix: Option<String>The prefix every parameter of this table carries, or None for a page’s
own list.
search: Option<String>?q= — trimmed and clamped to MAX_QUERY_TERM chars; None when
absent or blank.
sort: Option<Sort>?sort= + ?dir= — None when absent or blank.
cursor: Option<Cursor>?after= or ?before=.
filters: BTreeMap<String, String>?f.<name>=<value>, one parameter per active filter, by name. A blank
value is no filter.
filters_dropped: boolFilter parameters the parse dropped.
group_by: Option<String>?group_by= — field name to group by (in-memory, count summarizer).
delete: Option<String>?delete= — the row key whose delete dialog opens; never a write.
open: Option<bool>?open=false — renders the delete dialog closed.
Implementations§
Source§impl TableState
impl TableState
Sourcepub fn from_cx(cx: &Cx) -> Self
pub fn from_cx(cx: &Cx) -> Self
Parse the state from the request in cx: Self::from_query over
the request URI’s query. Renders without a request context (e.g. unit
tests) get neutral state.
Sourcepub fn from_cx_prefixed(cx: &Cx, prefix: &str) -> Self
pub fn from_cx_prefixed(cx: &Cx, prefix: &str) -> Self
Self::from_cx for the table whose parameters carry prefix, on a
page of several.
Sourcepub fn from_query_prefixed(query: &str, prefix: &str) -> Self
pub fn from_query_prefixed(query: &str, prefix: &str) -> Self
Self::from_query for the table whose parameters carry prefix:
only the parameters spelled {prefix}.{name} are read, as name, and
the parsed state carries the prefix so its links spell the same names.
Sourcepub fn from_query(query: &str) -> Self
pub fn from_query(query: &str) -> Self
Parse the state from a URL query (without the leading ?): the one
parser behind the GET page and the live shard.
A blank or unknown query parses as neutral state rather than failing
the request. A duplicate key keeps its first occurrence, so a repeated
filter never vanishes. A blank or dropped filter occurrence is no
filter, so a later occurrence of the same filter applies (a dropped one
still flags Self::filters_dropped). q is trimmed and clamped to
MAX_QUERY_TERM, dir is trimmed before comparing, and at most
MAX_FILTERS filters of at most MAX_FILTER_LEN bytes apply. A cursor
token is checked later, when it decodes.
The live shard parses a client-owned query, so the parse is linear in its length: only the known keys are remembered.
Trait Implementations§
Source§impl Clone for TableState
impl Clone for TableState
Source§impl Debug for TableState
impl Debug for TableState
Source§impl Default for TableState
impl Default for TableState
impl Eq for TableState
Source§impl PartialEq for TableState
impl PartialEq for TableState
impl StructuralPartialEq for TableState
Auto Trait Implementations§
impl Freeze for TableState
impl RefUnwindSafe for TableState
impl Send for TableState
impl Sync for TableState
impl Unpin for TableState
impl UnsafeUnpin for TableState
impl UnwindSafe for TableState
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CloneAny for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.