pub enum DataValue {
Int(SbrdInt),
Real(SbrdReal),
Bool(SbrdBool),
String(String),
Null,
}Expand description
Value for Schema
Variants§
Implementations§
Source§impl DataValue
impl DataValue
Sourcepub fn to_permutation_string(&self) -> String
pub fn to_permutation_string(&self) -> String
Convert to String to use when permute with other Strings
Sourcepub fn to_parse_string(&self) -> String
pub fn to_parse_string(&self) -> String
Convert to String to use parse
Sourcepub fn format(&self, format: &str) -> Option<String>
pub fn format(&self, format: &str) -> Option<String>
Format this value
Support Rust-format syntax. But not support position, variable, padding with character and Pointer format ({:p}).
Debug format is not supported in release build.
§Examples
fn main(){
use sbrd_gen::value::DataValue;
assert_eq!(Some("ignore value".to_string()), DataValue::Int(12).format("ignore value"));
assert_eq!(Some("12".to_string()), DataValue::Int(12).format("{}"));
assert_eq!(Some("{}".to_string()), DataValue::Int(12).format("{{}}"));
assert_eq!(Some("Rate= +12.35".to_string()), DataValue::Real(12.345).format("Rate={:+7.2}"));
assert_eq!(Some("Rate=+012.35".to_string()), DataValue::Real(12.345).format("Rate={:+07.2}"));
assert_eq!(Some(" aiueoあいうえお ".to_string()), DataValue::String("aiueoあいうえお".to_string()).format("{:^12}"));
assert_eq!(Some("true ".to_string()), DataValue::Bool(true).format("{:<8}"));
assert_eq!(Some("null".to_string()), DataValue::Null.format("{:<10}"));
}Trait Implementations§
Source§impl<'de> Deserialize<'de> for DataValue
impl<'de> Deserialize<'de> for DataValue
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
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<'a> FormatArgument for &'a DataValue
impl<'a> FormatArgument for &'a DataValue
Source§fn supports_format(&self, specifier: &Specifier) -> bool
fn supports_format(&self, specifier: &Specifier) -> bool
Returns
true if self can be formatted using the given specifier.Source§fn fmt_display(&self, f: &mut Formatter<'_>) -> Result
fn fmt_display(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::Display.Source§fn fmt_debug(&self, f: &mut Formatter<'_>) -> Result
fn fmt_debug(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::Debug.Source§fn fmt_octal(&self, f: &mut Formatter<'_>) -> Result
fn fmt_octal(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::Octal.Source§fn fmt_lower_hex(&self, f: &mut Formatter<'_>) -> Result
fn fmt_lower_hex(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::LowerHex.Source§fn fmt_upper_hex(&self, f: &mut Formatter<'_>) -> Result
fn fmt_upper_hex(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::UpperHex.Source§fn fmt_binary(&self, f: &mut Formatter<'_>) -> Result
fn fmt_binary(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::Binary.Source§fn fmt_lower_exp(&self, f: &mut Formatter<'_>) -> Result
fn fmt_lower_exp(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::LowerExp.Source§fn fmt_upper_exp(&self, f: &mut Formatter<'_>) -> Result
fn fmt_upper_exp(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::UpperExp.Source§fn to_usize(&self) -> Result<usize, ()>
fn to_usize(&self) -> Result<usize, ()>
Performs a type conversion into
usize that might fail. Like TryInto<usize>, but does not
consume self. The parser uses this to support formats whose width or precision use “dollar
syntax”. For more information about these, see std::fmt. The default implementation always
returns an error.Source§impl FormatArgument for DataValue
impl FormatArgument for DataValue
Source§fn supports_format(&self, specifier: &Specifier) -> bool
fn supports_format(&self, specifier: &Specifier) -> bool
Returns
true if self can be formatted using the given specifier.Source§fn fmt_display(&self, f: &mut Formatter<'_>) -> Result
fn fmt_display(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::Display.Source§fn fmt_debug(&self, f: &mut Formatter<'_>) -> Result
fn fmt_debug(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::Debug.Source§fn fmt_octal(&self, f: &mut Formatter<'_>) -> Result
fn fmt_octal(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::Octal.Source§fn fmt_lower_hex(&self, f: &mut Formatter<'_>) -> Result
fn fmt_lower_hex(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::LowerHex.Source§fn fmt_upper_hex(&self, f: &mut Formatter<'_>) -> Result
fn fmt_upper_hex(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::UpperHex.Source§fn fmt_binary(&self, f: &mut Formatter<'_>) -> Result
fn fmt_binary(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::Binary.Source§fn fmt_lower_exp(&self, f: &mut Formatter<'_>) -> Result
fn fmt_lower_exp(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::LowerExp.Source§fn fmt_upper_exp(&self, f: &mut Formatter<'_>) -> Result
fn fmt_upper_exp(&self, f: &mut Formatter<'_>) -> Result
Formats the value the way it would be formatted if it implemented
std::fmt::UpperExp.Source§fn to_usize(&self) -> Result<usize, ()>
fn to_usize(&self) -> Result<usize, ()>
Performs a type conversion into
usize that might fail. Like TryInto<usize>, but does not
consume self. The parser uses this to support formats whose width or precision use “dollar
syntax”. For more information about these, see std::fmt. The default implementation always
returns an error.Source§impl From<NaiveDateTime> for DataValue
impl From<NaiveDateTime> for DataValue
Source§fn from(v: SbrdDateTime) -> Self
fn from(v: SbrdDateTime) -> Self
Converts to this type from the input type.
impl StructuralPartialEq for DataValue
Auto Trait Implementations§
impl Freeze for DataValue
impl RefUnwindSafe for DataValue
impl Send for DataValue
impl Sync for DataValue
impl Unpin for DataValue
impl UnwindSafe for DataValue
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
Converts
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> ⓘ
Converts
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