pub enum Value {
Show 33 variants
Array {
dims: Vec<ArrayDimension>,
elements: Vec<Option<Value>>,
},
Bool(bool),
Bytea(Vec<u8>),
Char(u8),
Date(Date),
Float4(f32),
Float8(f64),
Int2(i16),
Int4(i32),
Int8(i64),
UInt2(UInt2),
UInt4(UInt4),
UInt8(UInt8),
Interval(Interval),
Jsonb(Jsonb),
List(Vec<Option<Value>>),
Map(BTreeMap<String, Option<Value>>),
Name(String),
Numeric(Numeric),
Oid(u32),
Record(Vec<Option<Value>>),
Time(NaiveTime),
Timestamp(CheckedTimestamp<NaiveDateTime>),
TimestampTz(CheckedTimestamp<DateTime<Utc>>),
Text(String),
BpChar(String),
VarChar(String),
Uuid(Uuid),
Int2Vector {
elements: Vec<Option<Value>>,
},
MzTimestamp(Timestamp),
Range(Range<Box<Value>>),
MzAclItem(MzAclItem),
AclItem(AclItem),
}
Expand description
A PostgreSQL datum.
Variants§
Array
A variable-length, multi-dimensional array of values.
Fields
dims: Vec<ArrayDimension>
The dimensions of the array.
Bool(bool)
A boolean value.
Bytea(Vec<u8>)
A byte array, i.e., a variable-length binary string.
Char(u8)
A single-byte character.
Date(Date)
A date.
Float4(f32)
A 4-byte floating point number.
Float8(f64)
An 8-byte floating point number.
Int2(i16)
A 2-byte signed integer.
Int4(i32)
A 4-byte signed integer.
Int8(i64)
An 8-byte signed integer.
UInt2(UInt2)
A 2-byte unsigned integer.
UInt4(UInt4)
A 4-byte unsigned integer.
UInt8(UInt8)
An 8-byte unsigned integer.
Interval(Interval)
A time interval.
Jsonb(Jsonb)
A binary JSON blob.
List(Vec<Option<Value>>)
A sequence of homogeneous values.
Map(BTreeMap<String, Option<Value>>)
A map of string keys and homogeneous values.
Name(String)
An identifier string of no more than 64 characters in length.
Numeric(Numeric)
An arbitrary precision number.
Oid(u32)
An object identifier.
Record(Vec<Option<Value>>)
A sequence of heterogeneous values.
Time(NaiveTime)
A time.
Timestamp(CheckedTimestamp<NaiveDateTime>)
A date and time, without a timezone.
TimestampTz(CheckedTimestamp<DateTime<Utc>>)
A date and time, with a timezone.
Text(String)
A variable-length string.
BpChar(String)
A fixed-length string.
VarChar(String)
A variable-length string with an optional limit.
Uuid(Uuid)
A universally unique identifier.
Int2Vector
A small int vector.
MzTimestamp(Timestamp)
A Materialize timestamp.
Range(Range<Box<Value>>)
A contiguous range of values along a domain.
MzAclItem(MzAclItem)
A list of privileges granted to a role, that uses mz_repr::role_id::RoleId
s for role
references.
AclItem(AclItem)
A list of privileges granted to a user that uses mz_repr::adt::system::Oid
s for role
references. This type is used primarily for compatibility with PostgreSQL.
Implementations§
Source§impl Value
impl Value
Sourcepub fn from_datum(datum: Datum<'_>, typ: &ScalarType) -> Option<Value>
pub fn from_datum(datum: Datum<'_>, typ: &ScalarType) -> Option<Value>
Constructs a new Value
from a Materialize datum.
The conversion happens in the obvious manner, except that Datum::Null
is converted to None
to align with how PostgreSQL handles NULL.
Sourcepub fn into_datum<'a>(self, buf: &'a RowArena, typ: &Type) -> Datum<'a>
pub fn into_datum<'a>(self, buf: &'a RowArena, typ: &Type) -> Datum<'a>
Converts a Materialize datum from this value.
Sourcepub fn encode(
&self,
ty: &Type,
format: Format,
buf: &mut BytesMut,
) -> Result<(), Error>
pub fn encode( &self, ty: &Type, format: Format, buf: &mut BytesMut, ) -> Result<(), Error>
Serializes this value to buf
in the specified format
.
Sourcepub fn encode_text(&self, buf: &mut BytesMut) -> Nestable
pub fn encode_text(&self, buf: &mut BytesMut) -> Nestable
Serializes this value to buf
using the text encoding
format.
Sourcepub fn encode_binary(&self, ty: &Type, buf: &mut BytesMut) -> Result<(), Error>
pub fn encode_binary(&self, ty: &Type, buf: &mut BytesMut) -> Result<(), Error>
Serializes this value to buf
using the binary encoding
format.
Sourcepub fn can_encode_binary(typ: &ScalarType) -> bool
pub fn can_encode_binary(typ: &ScalarType) -> bool
Static helper method to pre-validate that a given Datum corresponding to
the provided ScalarType
can be converted into a Value
and then encoded
as binary using encode_binary
without an error.
Sourcepub fn decode(
format: Format,
ty: &Type,
raw: &[u8],
) -> Result<Value, Box<dyn Error + Sync + Send>>
pub fn decode( format: Format, ty: &Type, raw: &[u8], ) -> Result<Value, Box<dyn Error + Sync + Send>>
Deserializes a value of type ty
from raw
using the specified
format
.
Sourcepub fn decode_text<'a>(
ty: &'a Type,
raw: &'a [u8],
) -> Result<Value, Box<dyn Error + Sync + Send>>
pub fn decode_text<'a>( ty: &'a Type, raw: &'a [u8], ) -> Result<Value, Box<dyn Error + Sync + Send>>
Deserializes a value of type ty
from raw
using the text encoding
format.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Value
impl RefUnwindSafe for Value
impl Send for Value
impl Sync for Value
impl Unpin for Value
impl UnwindSafe for Value
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
Source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
Source§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>
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);
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
Source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
RustType::from_proto
.Source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.Source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
Source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
std::ops::AddAssign
, for types that do not implement AddAssign
.