pub struct ProjectionBuilder { /* private fields */ }Implementations§
Source§impl ProjectionBuilder
impl ProjectionBuilder
Sourcepub fn deep_initialize_from_struct(
name: Option<Identifier>,
hst: Struct,
) -> Self
pub fn deep_initialize_from_struct( name: Option<Identifier>, hst: Struct, ) -> Self
Construct a new projection builder with items initialized to reference to the fields in the given struct. Initialize the references to the fields in this struct with the given prefix. The projection builder would be useful to be used to select the given struct by the given name.
pub fn expand_repeated_struct( array: SQLExpression, from: &Type, to: &Type, ) -> Result<SQLExpression, ExpandError>
Sourcepub fn expand(&self, to: Struct) -> Result<Self, ExpandError>
pub fn expand(&self, to: Struct) -> Result<Self, ExpandError>
Expand this projection builder to entirely cover the given type.
Where this projection builder does not define a column in the given type, it will add a null literal. It will also reorder the columns to match the given.
§Arguments
to- The struct type to expand to
Sourcepub fn bind(&mut self, id: Identifier, value: SQLExpression, type_: Type)
pub fn bind(&mut self, id: Identifier, value: SQLExpression, type_: Type)
Bind a new column value in the list of projections.
§Arguments
id- Bind this column. Compound identifiers are okay here. It will nest!value- Bind to this expressiontype- Assume this type. (Needed in order to construct the cast parts of a row literal.)
Sourcepub fn with_binding(
self,
id: Identifier,
value: SQLExpression,
type_: Type,
) -> Self
pub fn with_binding( self, id: Identifier, value: SQLExpression, type_: Type, ) -> Self
Bind a new column value in the list of projections, returning a new projection builder.
§Arguments
id- Bind this column. Compound identifiers are okay here. It will nest!value- Bind to this expressiontype- Assume this type. (Needed in order to construct the cast parts of a row literal.)
Sourcepub fn bind_all(&self, other: &Self) -> Self
pub fn bind_all(&self, other: &Self) -> Self
Bind all projections from another projection builder to this one.
It will bind every column in the other projection builder to this one. If a column is present in both, it will be bound to the expression in the other projection builder.
§Arguments
other- The other projection builder to bind the projections from with this one
§Returns
The new projection builder containing the bindings from this and the other projection builder
Sourcepub fn bind_column_reference(&mut self, ident: SimpleIdentifier, type_: Type)
pub fn bind_column_reference(&mut self, ident: SimpleIdentifier, type_: Type)
Bind a new column reference in the list of projections.
Rather than binding a variable to a value, this binds a variable to a self-reference.
§Arguments
ident- Bind this columntype_- Assume this type. (Needed in order to construct the cast parts of a row literal.)
Sourcepub fn initialize_key(&mut self, ident: SimpleIdentifier, struct_type: Struct)
pub fn initialize_key(&mut self, ident: SimpleIdentifier, struct_type: Struct)
Initialize a key in the list of projections from a Hamelin struct type. This will set all the expressions to self-reference column references. This is useful when wanting to construct a projection literal after having messed with the environment by removing nested elements.
§Arguments
ident- Initialize this columnstruct_type- Initialize the column to a self-reference literal of this type
Sourcepub fn is_present(&self, id: &Identifier) -> bool
pub fn is_present(&self, id: &Identifier) -> bool
Test whether a key is present in the list of projections.
§Returns
True if the key is present, false otherwise.
pub fn build_literal(&self) -> RowLiteral
pub fn build_sql_type(&self) -> Result<SQLRowType>
pub fn build_cast(&self) -> Result<Cast>
pub fn build_hamelin_type(self) -> Struct
pub fn build_projections(self) -> Result<Vec<Projection>>
Trait Implementations§
Source§impl Clone for ProjectionBuilder
impl Clone for ProjectionBuilder
Source§fn clone(&self) -> ProjectionBuilder
fn clone(&self) -> ProjectionBuilder
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProjectionBuilder
impl Debug for ProjectionBuilder
Source§impl Default for ProjectionBuilder
impl Default for ProjectionBuilder
Source§fn default() -> ProjectionBuilder
fn default() -> ProjectionBuilder
Auto Trait Implementations§
impl Freeze for ProjectionBuilder
impl RefUnwindSafe for ProjectionBuilder
impl Send for ProjectionBuilder
impl Sync for ProjectionBuilder
impl Unpin for ProjectionBuilder
impl UnsafeUnpin for ProjectionBuilder
impl UnwindSafe for ProjectionBuilder
Blanket Implementations§
Source§impl<T> AnyExt for T
impl<T> AnyExt for T
Source§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind referenceSource§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable referenceSource§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointerSource§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointerSource§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,
Source§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§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();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§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();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§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();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§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();Source§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>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§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);