Struct ToSqlConfigEntity

Source
pub struct ToSqlConfigEntity {
    pub enabled: bool,
    pub callback: Option<fn(&SqlGraphEntity, &PgxSql) -> Result<String, Box<dyn Error + Send + Sync + 'static>>>,
    pub content: Option<&'static str>,
}
Expand description

Represents configuration options for tuning the SQL generator.

When an item that can be rendered to SQL has these options at hand, they should be respected. If an item does not have them, then it is not expected that the SQL generation for those items can be modified.

The default configuration has enabled set to true, and callback to None, which indicates that the default SQL generation behavior will be used. These are intended to be mutually exclusive options, so callback should only be set if generation is enabled.

When enabled is false, no SQL is generated for the item being configured.

When callback has a value, the corresponding ToSql implementation should invoke the callback instead of performing their default behavior.

Fields§

§enabled: bool§callback: Option<fn(&SqlGraphEntity, &PgxSql) -> Result<String, Box<dyn Error + Send + Sync + 'static>>>§content: Option<&'static str>

Implementations§

Source§

impl ToSqlConfigEntity

Source

pub fn to_sql( &self, entity: &SqlGraphEntity, context: &PgxSql, ) -> Option<Result<String>>

Given a SqlGraphEntity, this function converts it to SQL based on the current configuration.

If the config overrides the default behavior (i.e. using the ToSql trait), then Some(eyre::Result) is returned. If the config does not override the default behavior, then None is returned. This can be used to dispatch SQL generation in a single line, e.g.:

config.to_sql(entity, context).unwrap_or_else(|| entity.to_sql(context))?

Trait Implementations§

Source§

impl Clone for ToSqlConfigEntity

Source§

fn clone(&self) -> ToSqlConfigEntity

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ToSqlConfigEntity

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ToSqlConfigEntity

Source§

fn default() -> ToSqlConfigEntity

Returns the “default value” for a type. Read more
Source§

impl Hash for ToSqlConfigEntity

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ToSqlConfigEntity

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for ToSqlConfigEntity

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more