pub struct TableDef {
pub name: TableName,
pub description: Option<String>,
pub columns: Vec<ColumnDef>,
pub constraints: Vec<TableConstraint>,
}Fields§
§name: TableName§description: Option<String>§columns: Vec<ColumnDef>§constraints: Vec<TableConstraint>Implementations§
Source§impl TableDef
impl TableDef
Sourcepub fn normalize(&self) -> Result<Self, TableValidationError>
pub fn normalize(&self) -> Result<Self, TableValidationError>
Normalizes inline column constraints (primary_key, unique, index, foreign_key)
into table-level constraints.
Returns a new TableDef with all inline constraints converted to table-level.
§Errors
Returns an error if the same index name is applied to the same column multiple times.
Sourcepub fn validate_unique_column_names(&self) -> Result<(), TableValidationError>
pub fn validate_unique_column_names(&self) -> Result<(), TableValidationError>
Validate that no two columns share a name within this table.
§Errors
Returns TableValidationError::DuplicateColumnName { table, column }
if the same column name appears more than once.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for TableDef
impl<'de> Deserialize<'de> for TableDef
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>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for TableDef
Source§impl JsonSchema for TableDef
impl JsonSchema for TableDef
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreimpl StructuralPartialEq for TableDef
Auto Trait Implementations§
impl Freeze for TableDef
impl RefUnwindSafe for TableDef
impl Send for TableDef
impl Sync for TableDef
impl Unpin for TableDef
impl UnsafeUnpin for TableDef
impl UnwindSafe for TableDef
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
Mutably borrows from an owned value. Read more
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>,
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>
Converts
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>
Converts
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