diesel/query_builder/
locking_clause.rs1use crate::backend::{Backend, DieselReserveSpecialization};
2use crate::query_builder::{AstPass, QueryFragment, QueryId};
3use crate::result::QueryResult;
4
5#[derive(#[automatically_derived]
impl ::core::fmt::Debug for NoLockingClause {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "NoLockingClause")
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for NoLockingClause {
#[inline]
fn clone(&self) -> NoLockingClause { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for NoLockingClause { }Copy, const _: () =
{
use diesel;
#[allow(non_camel_case_types)]
impl diesel::query_builder::QueryId for NoLockingClause {
type QueryId = NoLockingClause<>;
const HAS_STATIC_QUERY_ID: bool = true;
const IS_WINDOW_FUNCTION: bool = false;
}
};QueryId)]
6pub struct NoLockingClause;
7
8impl<DB> QueryFragment<DB> for NoLockingClause
9where
10 DB: Backend + DieselReserveSpecialization,
11{
12 fn walk_ast<'b>(&'b self, _: AstPass<'_, 'b, DB>) -> QueryResult<()> {
13 Ok(())
14 }
15}
16
17#[derive(#[automatically_derived]
impl<LockMode: ::core::fmt::Debug, Modifier: ::core::fmt::Debug>
::core::fmt::Debug for LockingClause<LockMode, Modifier> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field2_finish(f, "LockingClause",
"lock_mode", &self.lock_mode, "modifier", &&self.modifier)
}
}Debug, #[automatically_derived]
impl<LockMode: ::core::clone::Clone, Modifier: ::core::clone::Clone>
::core::clone::Clone for LockingClause<LockMode, Modifier> {
#[inline]
fn clone(&self) -> LockingClause<LockMode, Modifier> {
LockingClause {
lock_mode: ::core::clone::Clone::clone(&self.lock_mode),
modifier: ::core::clone::Clone::clone(&self.modifier),
}
}
}Clone, #[automatically_derived]
impl<LockMode: ::core::marker::Copy, Modifier: ::core::marker::Copy>
::core::marker::Copy for LockingClause<LockMode, Modifier> {
}Copy, const _: () =
{
use diesel;
#[allow(non_camel_case_types)]
impl<LockMode: diesel::query_builder::QueryId,
Modifier: diesel::query_builder::QueryId>
diesel::query_builder::QueryId for
LockingClause<LockMode, Modifier> {
type QueryId =
LockingClause<<LockMode as
diesel::query_builder::QueryId>::QueryId,
<Modifier as diesel::query_builder::QueryId>::QueryId>;
const HAS_STATIC_QUERY_ID: bool =
<LockMode as
diesel::query_builder::QueryId>::HAS_STATIC_QUERY_ID &&
<Modifier as
diesel::query_builder::QueryId>::HAS_STATIC_QUERY_ID &&
true;
const IS_WINDOW_FUNCTION: bool =
<LockMode as
diesel::query_builder::QueryId>::IS_WINDOW_FUNCTION ||
<Modifier as
diesel::query_builder::QueryId>::IS_WINDOW_FUNCTION ||
false;
}
};QueryId)]
18pub struct LockingClause<LockMode = ForUpdate, Modifier = NoModifier> {
19 pub(crate) lock_mode: LockMode,
20 modifier: Modifier,
21}
22
23impl<LockMode, Modifier> LockingClause<LockMode, Modifier> {
24 pub(crate) fn new(lock_mode: LockMode, modifier: Modifier) -> Self {
25 LockingClause {
26 lock_mode,
27 modifier,
28 }
29 }
30}
31
32impl<DB, L, M> QueryFragment<DB> for LockingClause<L, M>
33where
34 DB: Backend + DieselReserveSpecialization,
35 L: QueryFragment<DB>,
36 M: QueryFragment<DB>,
37{
38 fn walk_ast<'b>(&'b self, mut out: AstPass<'_, 'b, DB>) -> QueryResult<()> {
39 self.lock_mode.walk_ast(out.reborrow())?;
40 self.modifier.walk_ast(out.reborrow())
41 }
42}
43
44)]
47pub struct ForUpdate;
48
49#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ForNoKeyUpdate {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ForNoKeyUpdate")
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for ForNoKeyUpdate {
#[inline]
fn clone(&self) -> ForNoKeyUpdate { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for ForNoKeyUpdate { }Copy, const _: () =
{
use diesel;
#[allow(non_camel_case_types)]
impl diesel::query_builder::QueryId for ForNoKeyUpdate {
type QueryId = ForNoKeyUpdate<>;
const HAS_STATIC_QUERY_ID: bool = true;
const IS_WINDOW_FUNCTION: bool = false;
}
};QueryId)]
50pub struct ForNoKeyUpdate;
51
52#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ForShare {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ForShare")
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for ForShare {
#[inline]
fn clone(&self) -> ForShare { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for ForShare { }Copy, const _: () =
{
use diesel;
#[allow(non_camel_case_types)]
impl diesel::query_builder::QueryId for ForShare {
type QueryId = ForShare<>;
const HAS_STATIC_QUERY_ID: bool = true;
const IS_WINDOW_FUNCTION: bool = false;
}
};QueryId)]
53pub struct ForShare;
54
55#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ForKeyShare {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ForKeyShare")
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for ForKeyShare {
#[inline]
fn clone(&self) -> ForKeyShare { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for ForKeyShare { }Copy, const _: () =
{
use diesel;
#[allow(non_camel_case_types)]
impl diesel::query_builder::QueryId for ForKeyShare {
type QueryId = ForKeyShare<>;
const HAS_STATIC_QUERY_ID: bool = true;
const IS_WINDOW_FUNCTION: bool = false;
}
};QueryId)]
56pub struct ForKeyShare;
57
58)]
61pub struct NoModifier;
62
63#[derive(#[automatically_derived]
impl ::core::fmt::Debug for SkipLocked {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "SkipLocked")
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for SkipLocked {
#[inline]
fn clone(&self) -> SkipLocked { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for SkipLocked { }Copy, const _: () =
{
use diesel;
#[allow(non_camel_case_types)]
impl diesel::query_builder::QueryId for SkipLocked {
type QueryId = SkipLocked<>;
const HAS_STATIC_QUERY_ID: bool = true;
const IS_WINDOW_FUNCTION: bool = false;
}
};QueryId)]
64pub struct SkipLocked;
65
66#[derive(#[automatically_derived]
impl ::core::fmt::Debug for NoWait {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "NoWait")
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for NoWait {
#[inline]
fn clone(&self) -> NoWait { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for NoWait { }Copy, const _: () =
{
use diesel;
#[allow(non_camel_case_types)]
impl diesel::query_builder::QueryId for NoWait {
type QueryId = NoWait<>;
const HAS_STATIC_QUERY_ID: bool = true;
const IS_WINDOW_FUNCTION: bool = false;
}
};QueryId)]
67pub struct NoWait;