pub struct Drawing {
pub id: Uuid,
pub shape_type: DrawingShapeType,
pub add_date: Option<NaiveDate>,
pub remove_date: Option<NaiveDate>,
pub rotation: f32,
pub scale_x: f32,
pub scale_y: f32,
pub x: i32,
pub y: i32,
pub properties: Value,
pub layer_id: Uuid,
pub notes: String,
}
Fields§
§id: Uuid
§shape_type: DrawingShapeType
§add_date: Option<NaiveDate>
§remove_date: Option<NaiveDate>
§rotation: f32
§scale_x: f32
§scale_y: f32
§x: i32
§y: i32
§properties: Value
§layer_id: Uuid
§notes: String
Implementations§
source§impl Drawing
impl Drawing
sourcepub async fn find(
map_id: i32,
conn: &mut AsyncPgConnection
) -> QueryResult<Vec<Self>>
pub async fn find( map_id: i32, conn: &mut AsyncPgConnection ) -> QueryResult<Vec<Self>>
sourcepub async fn find_in_layer(
layer_id: Uuid,
conn: &mut AsyncPgConnection
) -> QueryResult<Vec<Self>>
pub async fn find_in_layer( layer_id: Uuid, conn: &mut AsyncPgConnection ) -> QueryResult<Vec<Self>>
sourcepub async fn create(
drawings: Vec<Self>,
conn: &mut AsyncPgConnection
) -> QueryResult<Vec<Self>>
pub async fn create( drawings: Vec<Self>, conn: &mut AsyncPgConnection ) -> QueryResult<Vec<Self>>
sourcepub async fn update(
drawing_updates: Vec<UpdateDrawing>,
conn: &mut AsyncPgConnection
) -> QueryResult<Vec<Self>>
pub async fn update( drawing_updates: Vec<UpdateDrawing>, conn: &mut AsyncPgConnection ) -> QueryResult<Vec<Self>>
sourcefn do_update(
updates: Vec<UpdateDrawing>,
conn: &mut AsyncPgConnection
) -> Vec<impl Future<Output = QueryResult<Self>>>
fn do_update( updates: Vec<UpdateDrawing>, conn: &mut AsyncPgConnection ) -> Vec<impl Future<Output = QueryResult<Self>>>
Helper that performs the actual update of the drawings.
sourcepub async fn delete_by_ids(
ids: Vec<Uuid>,
conn: &mut AsyncPgConnection
) -> QueryResult<usize>
pub async fn delete_by_ids( ids: Vec<Uuid>, conn: &mut AsyncPgConnection ) -> QueryResult<usize>
Trait Implementations§
source§impl<'ident> Identifiable for &'ident Drawing
impl<'ident> Identifiable for &'ident Drawing
source§impl<'insert> Insertable<table> for &'insert Drawing
impl<'insert> Insertable<table> for &'insert Drawing
§type Values = <(Option<Grouped<Eq<id, <&'insert Uuid as AsExpression<<id as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<shape_type, <&'insert DrawingShapeType as AsExpression<<shape_type as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<add_date, <&'insert NaiveDate as AsExpression<<add_date as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<remove_date, <&'insert NaiveDate as AsExpression<<remove_date as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<rotation, <&'insert f32 as AsExpression<<rotation as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<scale_x, <&'insert f32 as AsExpression<<scale_x as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<scale_y, <&'insert f32 as AsExpression<<scale_y as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<x, <&'insert i32 as AsExpression<<x as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<y, <&'insert i32 as AsExpression<<y as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<properties, <&'insert Value as AsExpression<<properties as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<layer_id, <&'insert Uuid as AsExpression<<layer_id as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<notes, <&'insert String as AsExpression<<notes as Expression>::SqlType>>::Expression>>>) as Insertable<table>>::Values
type Values = <(Option<Grouped<Eq<id, <&'insert Uuid as AsExpression<<id as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<shape_type, <&'insert DrawingShapeType as AsExpression<<shape_type as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<add_date, <&'insert NaiveDate as AsExpression<<add_date as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<remove_date, <&'insert NaiveDate as AsExpression<<remove_date as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<rotation, <&'insert f32 as AsExpression<<rotation as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<scale_x, <&'insert f32 as AsExpression<<scale_x as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<scale_y, <&'insert f32 as AsExpression<<scale_y as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<x, <&'insert i32 as AsExpression<<x as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<y, <&'insert i32 as AsExpression<<y as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<properties, <&'insert Value as AsExpression<<properties as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<layer_id, <&'insert Uuid as AsExpression<<layer_id as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<notes, <&'insert String as AsExpression<<notes as Expression>::SqlType>>::Expression>>>) as Insertable<table>>::Values
The
VALUES
clause to insert these records Read moresource§fn values(
self
) -> <(Option<Eq<id, &'insert Uuid>>, Option<Eq<shape_type, &'insert DrawingShapeType>>, Option<Eq<add_date, &'insert NaiveDate>>, Option<Eq<remove_date, &'insert NaiveDate>>, Option<Eq<rotation, &'insert f32>>, Option<Eq<scale_x, &'insert f32>>, Option<Eq<scale_y, &'insert f32>>, Option<Eq<x, &'insert i32>>, Option<Eq<y, &'insert i32>>, Option<Eq<properties, &'insert Value>>, Option<Eq<layer_id, &'insert Uuid>>, Option<Eq<notes, &'insert String>>) as Insertable<table>>::Values
fn values( self ) -> <(Option<Eq<id, &'insert Uuid>>, Option<Eq<shape_type, &'insert DrawingShapeType>>, Option<Eq<add_date, &'insert NaiveDate>>, Option<Eq<remove_date, &'insert NaiveDate>>, Option<Eq<rotation, &'insert f32>>, Option<Eq<scale_x, &'insert f32>>, Option<Eq<scale_y, &'insert f32>>, Option<Eq<x, &'insert i32>>, Option<Eq<y, &'insert i32>>, Option<Eq<properties, &'insert Value>>, Option<Eq<layer_id, &'insert Uuid>>, Option<Eq<notes, &'insert String>>) as Insertable<table>>::Values
Construct
Self::Values
Read moresource§fn insert_into(
self,
table: T
) -> InsertStatement<T, Self::Values, Insert, NoReturningClause>where
T: Table,
Self: Sized,
fn insert_into( self, table: T ) -> InsertStatement<T, Self::Values, Insert, NoReturningClause>where T: Table, Self: Sized,
Insert
self
into a given table. Read moresource§impl Insertable<table> for Drawing
impl Insertable<table> for Drawing
§type Values = <(Option<Grouped<Eq<id, <Uuid as AsExpression<<id as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<shape_type, <DrawingShapeType as AsExpression<<shape_type as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<add_date, <NaiveDate as AsExpression<<add_date as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<remove_date, <NaiveDate as AsExpression<<remove_date as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<rotation, <f32 as AsExpression<<rotation as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<scale_x, <f32 as AsExpression<<scale_x as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<scale_y, <f32 as AsExpression<<scale_y as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<x, <i32 as AsExpression<<x as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<y, <i32 as AsExpression<<y as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<properties, <Value as AsExpression<<properties as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<layer_id, <Uuid as AsExpression<<layer_id as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<notes, <String as AsExpression<<notes as Expression>::SqlType>>::Expression>>>) as Insertable<table>>::Values
type Values = <(Option<Grouped<Eq<id, <Uuid as AsExpression<<id as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<shape_type, <DrawingShapeType as AsExpression<<shape_type as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<add_date, <NaiveDate as AsExpression<<add_date as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<remove_date, <NaiveDate as AsExpression<<remove_date as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<rotation, <f32 as AsExpression<<rotation as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<scale_x, <f32 as AsExpression<<scale_x as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<scale_y, <f32 as AsExpression<<scale_y as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<x, <i32 as AsExpression<<x as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<y, <i32 as AsExpression<<y as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<properties, <Value as AsExpression<<properties as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<layer_id, <Uuid as AsExpression<<layer_id as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<notes, <String as AsExpression<<notes as Expression>::SqlType>>::Expression>>>) as Insertable<table>>::Values
The
VALUES
clause to insert these records Read moresource§fn values(
self
) -> <(Option<Eq<id, Uuid>>, Option<Eq<shape_type, DrawingShapeType>>, Option<Eq<add_date, NaiveDate>>, Option<Eq<remove_date, NaiveDate>>, Option<Eq<rotation, f32>>, Option<Eq<scale_x, f32>>, Option<Eq<scale_y, f32>>, Option<Eq<x, i32>>, Option<Eq<y, i32>>, Option<Eq<properties, Value>>, Option<Eq<layer_id, Uuid>>, Option<Eq<notes, String>>) as Insertable<table>>::Values
fn values( self ) -> <(Option<Eq<id, Uuid>>, Option<Eq<shape_type, DrawingShapeType>>, Option<Eq<add_date, NaiveDate>>, Option<Eq<remove_date, NaiveDate>>, Option<Eq<rotation, f32>>, Option<Eq<scale_x, f32>>, Option<Eq<scale_y, f32>>, Option<Eq<x, i32>>, Option<Eq<y, i32>>, Option<Eq<properties, Value>>, Option<Eq<layer_id, Uuid>>, Option<Eq<notes, String>>) as Insertable<table>>::Values
Construct
Self::Values
Read moresource§fn insert_into(
self,
table: T
) -> InsertStatement<T, Self::Values, Insert, NoReturningClause>where
T: Table,
Self: Sized,
fn insert_into( self, table: T ) -> InsertStatement<T, Self::Values, Insert, NoReturningClause>where T: Table, Self: Sized,
Insert
self
into a given table. Read moresource§impl<__DB: Backend, __ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11> Queryable<(__ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11), __DB> for Drawingwhere
(Uuid, DrawingShapeType, Option<NaiveDate>, Option<NaiveDate>, f32, f32, f32, i32, i32, Value, Uuid, String): FromStaticSqlRow<(__ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11), __DB>,
impl<__DB: Backend, __ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11> Queryable<(__ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11), __DB> for Drawingwhere (Uuid, DrawingShapeType, Option<NaiveDate>, Option<NaiveDate>, f32, f32, f32, i32, i32, Value, Uuid, String): FromStaticSqlRow<(__ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11), __DB>,
source§impl TryFrom<Drawing> for DrawingDto
impl TryFrom<Drawing> for DrawingDto
source§impl TryFrom<DrawingDto> for Drawing
impl TryFrom<DrawingDto> for Drawing
§type Error = ServiceError
type Error = ServiceError
The type returned in the event of a conversion error.
impl UndecoratedInsertRecord<table> for Drawing
Auto Trait Implementations§
impl RefUnwindSafe for Drawing
impl Send for Drawing
impl Sync for Drawing
impl Unpin for Drawing
impl UnwindSafe for Drawing
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> 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> IntoSql for T
impl<T> IntoSql for T
source§fn into_sql<T>(self) -> Self::Expressionwhere
Self: AsExpression<T> + Sized,
T: SqlType + TypedExpressionType,
fn into_sql<T>(self) -> Self::Expressionwhere Self: AsExpression<T> + Sized, T: SqlType + TypedExpressionType,
Convert
self
to an expression for Diesel’s query builder. Read moresource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere
&'a Self: AsExpression<T>,
T: SqlType + TypedExpressionType,
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expressionwhere &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,
Convert
&self
to an expression for Diesel’s query builder. Read moresource§impl<T, Conn> RunQueryDsl<Conn> for T
impl<T, Conn> RunQueryDsl<Conn> for T
source§fn execute<'query, 'conn>(
self,
conn: &'conn mut Conn
) -> <Conn as AsyncConnection>::ExecuteFuture<'conn, 'query>where
Conn: AsyncConnection + Send,
Self: ExecuteDsl<Conn, <Conn as AsyncConnection>::Backend> + 'query,
fn execute<'query, 'conn>( self, conn: &'conn mut Conn ) -> <Conn as AsyncConnection>::ExecuteFuture<'conn, 'query>where Conn: AsyncConnection + Send, Self: ExecuteDsl<Conn, <Conn as AsyncConnection>::Backend> + 'query,
Executes the given command, returning the number of rows affected. Read more
source§fn load<'query, U, 'conn>(
self,
conn: &'conn mut Conn
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U, Global>>, fn(_: Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U, Global>>>where
U: Send,
Conn: AsyncConnection,
Self: LoadQuery<'query, Conn, U> + 'query,
fn load<'query, U, 'conn>( self, conn: &'conn mut Conn ) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U, Global>>, fn(_: Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U, Global>>>where U: Send, Conn: AsyncConnection, Self: LoadQuery<'query, Conn, U> + 'query,
source§fn load_stream<'conn, 'query, U>(
self,
conn: &'conn mut Conn
) -> Self::LoadFuture<'conn>where
Conn: AsyncConnection,
U: 'conn,
Self: LoadQuery<'query, Conn, U> + 'query,
fn load_stream<'conn, 'query, U>( self, conn: &'conn mut Conn ) -> Self::LoadFuture<'conn>where Conn: AsyncConnection, U: 'conn, Self: LoadQuery<'query, Conn, U> + 'query,
source§fn get_result<'query, 'conn, U>(
self,
conn: &'conn mut Conn
) -> AndThen<Self::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<Self::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>, Global>>)) -> Result<U, Error>>, fn(_: Self::Stream<'conn>) -> Map<StreamFuture<Pin<Box<Self::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>, Global>>)) -> Result<U, Error>>>where
U: Send + 'conn,
Conn: AsyncConnection,
Self: LoadQuery<'query, Conn, U> + 'query,
fn get_result<'query, 'conn, U>( self, conn: &'conn mut Conn ) -> AndThen<Self::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<Self::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>, Global>>)) -> Result<U, Error>>, fn(_: Self::Stream<'conn>) -> Map<StreamFuture<Pin<Box<Self::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>, Global>>)) -> Result<U, Error>>>where U: Send + 'conn, Conn: AsyncConnection, Self: LoadQuery<'query, Conn, U> + 'query,
Runs the command, and returns the affected row. Read more
source§fn get_results<'query, U, 'conn>(
self,
conn: &'conn mut Conn
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U, Global>>, fn(_: Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U, Global>>>where
U: Send,
Conn: AsyncConnection,
Self: LoadQuery<'query, Conn, U> + 'query,
fn get_results<'query, U, 'conn>( self, conn: &'conn mut Conn ) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U, Global>>, fn(_: Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U, Global>>>where U: Send, Conn: AsyncConnection, Self: LoadQuery<'query, Conn, U> + 'query,
Runs the command, returning an
Vec
with the affected rows. Read moresource§fn first<'query, 'conn, U>(
self,
conn: &'conn mut Conn
) -> AndThen<<Self::Output as LoadQuery<'query, Conn, U>>::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>)) -> Result<U, Error>>, fn(_: <Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>) -> Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>)) -> Result<U, Error>>>where
U: Send + 'conn,
Conn: AsyncConnection,
Self: LimitDsl,
Self::Output: LoadQuery<'query, Conn, U> + Send + 'query,
fn first<'query, 'conn, U>( self, conn: &'conn mut Conn ) -> AndThen<<Self::Output as LoadQuery<'query, Conn, U>>::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>)) -> Result<U, Error>>, fn(_: <Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>) -> Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>>, fn(_: (Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>, Global>>)) -> Result<U, Error>>>where U: Send + 'conn, Conn: AsyncConnection, Self: LimitDsl, Self::Output: LoadQuery<'query, Conn, U> + Send + 'query,
Attempts to load a single record. Read more
source§impl<T, ST, DB> StaticallySizedRow<ST, DB> for Twhere
ST: SqlTypeOrSelectable + TupleSize,
T: Queryable<ST, DB>,
DB: Backend,
impl<T, ST, DB> StaticallySizedRow<ST, DB> for Twhere ST: SqlTypeOrSelectable + TupleSize, T: Queryable<ST, DB>, DB: Backend,
source§const FIELD_COUNT: usize = <ST as crate::util::TupleSize>::SIZE
const FIELD_COUNT: usize = <ST as crate::util::TupleSize>::SIZE
The number of fields that this type will consume.