#[non_exhaustive]pub struct FormConfig {
pub entity: String,
pub title: Text,
pub base_path: String,
pub id_field: String,
pub fields: Vec<FormField>,
pub enter: EnterPolicy,
pub persist: Option<String>,
pub timestamps: bool,
}Expand description
A form descriptor: which table, its editable fields, the id column, and the
base path the form lives under ({base_path}/new, {base_path}/{id}/edit).
Built with FormConfig::new plus its builder methods. Non-exhaustive so the
framework can learn something new about a form after 1.0 without a major bump.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.entity: String§title: TextThe screen title, localized at render. Serde stays a plain string.
base_path: String§id_field: String§fields: Vec<FormField>§enter: EnterPolicyWhat Enter does in the form’s single-line fields. Default submit.
persist: Option<String>The registered persister that writes this form (a dotted vendor.name),
or None for the built-in descriptor insert/update. See crate::persist.
timestamps: boolStamp created_at and updated_at on write. Opt in per form, because
the columns have to exist on this entity’s table.
Implementations§
Source§impl FormConfig
impl FormConfig
Sourcepub fn new(
entity: impl Into<String>,
title: impl Into<Text>,
base_path: impl Into<String>,
id_field: impl Into<String>,
fields: Vec<FormField>,
) -> Self
pub fn new( entity: impl Into<String>, title: impl Into<Text>, base_path: impl Into<String>, id_field: impl Into<String>, fields: Vec<FormField>, ) -> Self
A form over entity, mounted under base_path, keyed by id_field.
The four arguments are the ones with no sensible default; everything else is opt-in through a builder method, so a later field costs nothing.
Sourcepub fn persist(self, name: impl Into<String>) -> Self
pub fn persist(self, name: impl Into<String>) -> Self
Writes this form through a registered persister instead of the built-in descriptor insert/update.
Sourcepub fn timestamps(self) -> Self
pub fn timestamps(self) -> Self
Stamps created_at and updated_at on write. Opt in, because the
columns have to exist on this entity’s table.
Trait Implementations§
Source§impl Clone for FormConfig
impl Clone for FormConfig
Source§impl Debug for FormConfig
impl Debug for FormConfig
Source§impl Default for FormConfig
impl Default for FormConfig
Source§impl<'de> Deserialize<'de> for FormConfigwhere
FormConfig: Default,
impl<'de> Deserialize<'de> for FormConfigwhere
FormConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for FormConfig
impl RefUnwindSafe for FormConfig
impl Send for FormConfig
impl Sync for FormConfig
impl Unpin for FormConfig
impl UnsafeUnpin for FormConfig
impl UnwindSafe for FormConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more