Struct anyscript_compiler::types::float::Float
source · pub struct Float<T1> {
pub floating: FloatAlias,
pub size: FloatAlias,
pub original: T1,
pub type_id: String,
}
Fields§
§floating: FloatAlias
§size: FloatAlias
§original: T1
§type_id: String
Implementations§
source§impl<T1: 'static + Default + Display + PartialEq + Hash + Clone + Send + Sync> Float<T1>
impl<T1: 'static + Default + Display + PartialEq + Hash + Clone + Send + Sync> Float<T1>
sourcepub fn new() -> Self
pub fn new() -> Self
§Create a new instance of the class
pub fn new() -> Self {
let n = T1::default();
Float {
floating: 0.0,
size: 0.0,
original: n,
type_id: String::new(),
}
}
sourcepub fn reset(&mut self)
pub fn reset(&mut self)
§Reset the class
pub fn reset(&mut self) {
self.floating = 0.0;
self.size = 0.0;
self.type_id = String::new();
self.original = T1::default();
}
sourcepub fn validate(&self) -> (bool, String)
pub fn validate(&self) -> (bool, String)
§Check Valid
pub fn validate(&self) -> (bool, String) {
if TypeId::of::<T1>() == TypeId::of::<FloatAlias>() {
return (true, "float".to_string());
} else if TypeId::of::<T1>() == TypeId::of::<IntAlias>() {
return (true, "int".to_string());
} else if TypeId::of::<T1>() == TypeId::of::<UIntAlias>() {
return (true, "uint".to_string());
} else if TypeId::of::<T1>() == TypeId::of::<&str>() || TypeId::of::<T1>() == TypeId::of::<String>() {
let value = self.original.to_string();
if value.parse::<FloatAlias>().is_ok() {
return (true, "float".to_string());
} else if value.parse::<IntAlias>().is_ok() {
return (true, "int".to_string());
} else if value.parse::<UIntAlias>().is_ok() {
return (true, "uint".to_string());
} else {
return (false, "invalid string".to_string());
}
} else if TypeId::of::<T1>() == TypeId::of::<CString>() {
let c_str = self.original.to_string();
if c_str.parse::<FloatAlias>().is_ok() {
return (true, "float".to_string());
} else if c_str.parse::<IntAlias>().is_ok() {
return (true, "int".to_string());
} else if c_str.parse::<UIntAlias>().is_ok() {
return (true, "uint".to_string());
} else {
return (false, "invalid CString".to_string());
}
} else if TypeId::of::<T1>() == TypeId::of::<List<T1>>() {
let _raw: List<T1> = List::new(); // Explicit type annotation
let _type = _raw.get_type();
return (true, _type);
}
(false, "unsupported type".to_string())
}
sourcepub fn to_int(&mut self, bit32: Option<bool>)
pub fn to_int(&mut self, bit32: Option<bool>)
§Convert Floating to Int, with Optional set to 32 bit or 64 bit
pub fn to_int(&mut self, bit32: Option<bool>) {
let if_32 = bit32.unwrap_or(true); // Default is true
if if_32 {
self.floating = self.floating as f32 as FloatAlias;
} else {
self.floating = self.floating as f64 as FloatAlias;
}
}
sourcepub fn to_str(&self) -> String
pub fn to_str(&self) -> String
§Convert to String
pub fn to_str(&self) -> String {
self.floating.to_string()
}
sourcepub fn to_cstring(&self) -> CString
pub fn to_cstring(&self) -> CString
§Convert to an CString
pub fn to_cstring(&self) -> CString {
let _nstring = self.to_str();
let _cstr = CString::new(_nstring).unwrap();
_cstr
}
sourcepub fn from_string(s: &str) -> Result<Self, <FloatAlias as FromStr>::Err>
pub fn from_string(s: &str) -> Result<Self, <FloatAlias as FromStr>::Err>
§Convert from String
pub fn from_string(s: &str) -> Result<Self, <FloatAlias as FromStr>::Err> {
let floating = s.parse::<FloatAlias>()?;
Ok(Float {
floating,
size: 0.0,
original: T1::default(),
type_id: String::new(),
})
}
Trait Implementations§
Auto Trait Implementations§
impl<T1> Freeze for Float<T1>where
T1: Freeze,
impl<T1> RefUnwindSafe for Float<T1>where
T1: RefUnwindSafe,
impl<T1> Send for Float<T1>where
T1: Send,
impl<T1> Sync for Float<T1>where
T1: Sync,
impl<T1> Unpin for Float<T1>where
T1: Unpin,
impl<T1> UnwindSafe for Float<T1>where
T1: UnwindSafe,
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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