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]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for NoLockingClause {
}
#[automatically_derived]impl ::core::clone::Clone for NoLockingClause {
#[inline]
fn clone(&self) -> Self { *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 modifier", &self.lock_mode,
&&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) -> Self {
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#[derive(#[automatically_derived]impl ::core::fmt::Debug for ForUpdate {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ForUpdate")
}
}Debug, #[automatically_derived]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for ForUpdate {
}
#[automatically_derived]impl ::core::clone::Clone for ForUpdate {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]impl ::core::marker::Copy for ForUpdate { }Copy, const _: () =
{
use diesel;
#[allow(non_camel_case_types)]
impl diesel::query_builder::QueryId for ForUpdate {
type QueryId = ForUpdate<>;
const HAS_STATIC_QUERY_ID: bool = true;
const IS_WINDOW_FUNCTION: bool = false;
}
};QueryId)]
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]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for ForNoKeyUpdate {
}
#[automatically_derived]impl ::core::clone::Clone for ForNoKeyUpdate {
#[inline]
fn clone(&self) -> Self { *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]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for ForShare {
}
#[automatically_derived]impl ::core::clone::Clone for ForShare {
#[inline]
fn clone(&self) -> Self { *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]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for ForKeyShare {
}
#[automatically_derived]impl ::core::clone::Clone for ForKeyShare {
#[inline]
fn clone(&self) -> Self { *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#[derive(#[automatically_derived]impl ::core::fmt::Debug for NoModifier {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "NoModifier")
}
}Debug, #[automatically_derived]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for NoModifier {
}
#[automatically_derived]impl ::core::clone::Clone for NoModifier {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]impl ::core::marker::Copy for NoModifier { }Copy, const _: () =
{
use diesel;
#[allow(non_camel_case_types)]
impl diesel::query_builder::QueryId for NoModifier {
type QueryId = NoModifier<>;
const HAS_STATIC_QUERY_ID: bool = true;
const IS_WINDOW_FUNCTION: bool = false;
}
};QueryId)]
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]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for SkipLocked {
}
#[automatically_derived]impl ::core::clone::Clone for SkipLocked {
#[inline]
fn clone(&self) -> Self { *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]#[doc(hidden)]unsafe impl ::core::clone::TrivialClone
for NoWait {
}
#[automatically_derived]impl ::core::clone::Clone for NoWait {
#[inline]
fn clone(&self) -> Self { *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;