pub struct ViewDelegate<'a, V, PK>where
V: 'static,
PK: 'static,{ /* private fields */ }Expand description
View delegate for views that declared an @id field. Exposes
find_many + find_unique (and refresh() on materialized
views). Views declared @@no_unique get ViewDelegateNoUnique
instead, which omits find_unique at the type level so a call
like runtime.views().<v>().find_unique(()) is a compile error
rather than a runtime “WHERE = $1” footgun.
Implementations§
Source§impl<'a, V, PK> ViewDelegate<'a, V, PK>where
V: 'static,
PK: 'static,
impl<'a, V, PK> ViewDelegate<'a, V, PK>where
V: 'static,
PK: 'static,
pub fn new( runtime: &'a SqlxRuntime, descriptor: &'static ViewDescriptor<V, PK>, ) -> ViewDelegate<'a, V, PK>
Sourcepub fn descriptor(&self) -> &'static ViewDescriptor<V, PK>
pub fn descriptor(&self) -> &'static ViewDescriptor<V, PK>
The typed descriptor the delegate was constructed with.
Useful for callers that need to inspect view metadata (e.g.
is_materialized, source_tables) without going through the
runtime.
pub fn find_many(&self) -> FindMany<'a, V, PK>
Sourcepub fn find_unique(&self, id: PK) -> FindUnique<'a, V, PK>
pub fn find_unique(&self, id: PK) -> FindUnique<'a, V, PK>
Single-row lookup by primary key. Only available on views
with an @id field — @@no_unique views get
ViewDelegateNoUnique, which doesn’t expose this method.
Sourcepub async fn refresh(&self) -> Result<(), CoolError>
pub async fn refresh(&self) -> Result<(), CoolError>
REFRESH MATERIALIZED VIEW CONCURRENTLY <name> — only valid
on @@materialized views. Concurrent refresh holds an
ACCESS SHARE lock (instead of the ACCESS EXCLUSIVE
non-concurrent refresh takes), letting readers continue
against the previous snapshot while the rebuild runs.
Returns a Forbidden error if called on a non-materialized
view — the macro emits this method unconditionally for
ViewDescriptor consumers, with the gate enforced at runtime
so the wire contract is uniform. (At codegen time the macro
can also choose to omit the method entirely on non-materialized
descriptors; the runtime gate is the safety net.)
Trait Implementations§
Source§impl<'a, V, PK> Clone for ViewDelegate<'a, V, PK>
impl<'a, V, PK> Clone for ViewDelegate<'a, V, PK>
Source§fn clone(&self) -> ViewDelegate<'a, V, PK>
fn clone(&self) -> ViewDelegate<'a, V, PK>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<'a, V, PK> Copy for ViewDelegate<'a, V, PK>
Auto Trait Implementations§
impl<'a, V, PK> Freeze for ViewDelegate<'a, V, PK>
impl<'a, V, PK> !RefUnwindSafe for ViewDelegate<'a, V, PK>
impl<'a, V, PK> Send for ViewDelegate<'a, V, PK>
impl<'a, V, PK> Sync for ViewDelegate<'a, V, PK>
impl<'a, V, PK> Unpin for ViewDelegate<'a, V, PK>
impl<'a, V, PK> UnsafeUnpin for ViewDelegate<'a, V, PK>
impl<'a, V, PK> !UnwindSafe for ViewDelegate<'a, V, PK>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
§type Iter<'a> = Once<&'a T>
where
T: 'a
type Iter<'a> = Once<&'a T> where T: 'a
§fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
§fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
MaybeRef].