Struct datamodel_renderer::datamodel::Model
source · pub struct Model<'a> { /* private fields */ }
Expand description
Defines a model block.
Implementations§
source§impl<'a> Model<'a>
impl<'a> Model<'a>
sourcepub fn new(name: impl Into<Cow<'a, str>>) -> Self
pub fn new(name: impl Into<Cow<'a, str>>) -> Self
Create a new model declaration.
ⓘ
model User {
// ^^^^ name
}
sourcepub fn documentation(&mut self, new_documentation: impl Into<Cow<'a, str>>)
pub fn documentation(&mut self, new_documentation: impl Into<Cow<'a, str>>)
Documentation of the model. If called repeatedly, adds the new docs to the end with a newline. This method is also responsible for avoiding to add the same comment twice (mainly in reintrospection).
ⓘ
/// This is the documentation.
model Foo {
....
}
sourcepub fn id(&mut self, id: IdDefinition<'a>)
pub fn id(&mut self, id: IdDefinition<'a>)
Add a model-level id definition.
ⓘ
model Foo {
@@id([field1, field2(sort: Desc)])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this
}
sourcepub fn map(&mut self, map: impl Into<Cow<'a, str>>)
pub fn map(&mut self, map: impl Into<Cow<'a, str>>)
Add a model-level mapping.
ⓘ
model Foo {
@@map("1Foo")
^^^^^^^^^^^^^ this
}
sourcepub fn schema(&mut self, schema: impl Into<Cow<'a, str>>)
pub fn schema(&mut self, schema: impl Into<Cow<'a, str>>)
The schema attribute of the model block
ⓘ
model Foo {
@@schema("public")
^^^^^^^^^^^^^^^^^^ this
}
sourcepub fn comment_out(&mut self)
pub fn comment_out(&mut self)
Comments the complete model block out.
ⓘ
// model Foo {
// id Int @id
// }
sourcepub fn push_field(&mut self, field: Field<'a>)
pub fn push_field(&mut self, field: Field<'a>)
Push a new field to the end of the model.
ⓘ
model Foo {
id Int @id
foo String
^^^^^^^^^^ this
}
sourcepub fn insert_field_front(&mut self, field: Field<'a>)
pub fn insert_field_front(&mut self, field: Field<'a>)
Push a new field to the beginning of the model.
Extremely inefficient, prefer push_field
if you can.
ⓘ
model Foo {
id Int @id
^^^^^^^^^^^^^^ this
foo String
}
sourcepub fn push_index(&mut self, index: IndexDefinition<'a>)
pub fn push_index(&mut self, index: IndexDefinition<'a>)
Push a new index to the model.
ⓘ
model Foo {
@@index([field1, field2])
^^^^^^^^^^^^^^^^^^^^^^^^^ this
}
Trait Implementations§
Auto Trait Implementations§
impl<'a> RefUnwindSafe for Model<'a>
impl<'a> Send for Model<'a>
impl<'a> Sync for Model<'a>
impl<'a> Unpin for Model<'a>
impl<'a> UnwindSafe for Model<'a>
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