Skip to main content

Capabilities

Struct Capabilities 

Source
#[non_exhaustive]
pub struct Capabilities { pub transactions: bool, pub cancellation: bool, pub multiple_schemas: bool, pub prepared_statements: bool, pub savepoints: bool, pub rows_affected: bool, pub streaming: bool, pub row_level_dml: bool, }
Expand description

Static description of features a driver supports.

The UI inspects Capabilities to enable or disable commands without hard-coding driver names. New flags are added by extending this struct; existing drivers default to false for unknown features.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§transactions: bool

Driver supports explicit transactions (BEGIN/COMMIT/ROLLBACK).

§cancellation: bool

Driver can request asynchronous cancellation of an in-flight query.

§multiple_schemas: bool

Driver exposes more than one logical schema/namespace.

§prepared_statements: bool

Driver supports server-side prepared statements with parameter binding.

§savepoints: bool

Driver supports nested transactions via savepoints.

§rows_affected: bool

Driver can report row counts for UPDATE/DELETE statements.

§streaming: bool

Driver returns rows progressively from crate::Connection::stream — i.e. the stream yields rows as the server produces them, without materialising the entire result set in memory first.

Drivers that currently buffer the full result before exposing the stream (notably MySQL, which is awaiting a real stream_and_drop implementation) must leave this false so the UI can warn the user and refuse to launch open-ended streams over large tables.

§row_level_dml: bool

Driver supports row-level DML through the standard INSERT/UPDATE/DELETE grammar that crate::Connection::execute accepts.

Most engines do; the notable exception is ClickHouse, where row-level changes have to go through ALTER TABLE ... UPDATE or ALTER TABLE ... DELETE async mutations. The pending-changes pipeline gates o/O/d/cell-edit on this flag so it never emits a statement the driver cannot consume. Defaults to false; drivers opt in explicitly via Self::with_row_level_dml.

Implementations§

Source§

impl Capabilities

Source

pub const fn with_transactions(self, value: bool) -> Self

Builder-style mutation used by drivers to assemble their capability set.

Source

pub const fn with_cancellation(self, value: bool) -> Self

Source

pub const fn with_multiple_schemas(self, value: bool) -> Self

Source

pub const fn with_prepared_statements(self, value: bool) -> Self

Source

pub const fn with_savepoints(self, value: bool) -> Self

Source

pub const fn with_rows_affected(self, value: bool) -> Self

Source

pub const fn with_streaming(self, value: bool) -> Self

Source

pub const fn with_row_level_dml(self, value: bool) -> Self

Trait Implementations§

Source§

impl Clone for Capabilities

Source§

fn clone(&self) -> Capabilities

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Capabilities

Source§

impl Debug for Capabilities

Source§

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

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

impl Default for Capabilities

Source§

fn default() -> Capabilities

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

impl<'de> Deserialize<'de> for Capabilities

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for Capabilities

Source§

impl PartialEq for Capabilities

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Serialize for Capabilities

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Capabilities

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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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