Struct extendr_api::scalar::Rbool
source · pub struct Rbool(/* private fields */);Expand description
Rbool is a wrapper for i32 in the context of an R’s logical vector.
Rbool can have a value of 0, 1 or i32::MIN.
The value i32::MIN is used as NA.
Rbool has the same footprint as an i32 value allowing us to use it in zero copy slices.
Implementations§
source§impl Rbool
impl Rbool
sourcepub const fn true_value() -> Rbool
pub const fn true_value() -> Rbool
Return a true Rbool.
sourcepub const fn false_value() -> Rbool
pub const fn false_value() -> Rbool
Return a false Rbool.
Trait Implementations§
source§impl<'a> AsTypedSlice<'a, Rbool> for Robjwhere
Self: 'a,
impl<'a> AsTypedSlice<'a, Rbool> for Robjwhere Self: 'a,
fn as_typed_slice(&self) -> Option<&'a [Rbool]>
fn as_typed_slice_mut(&mut self) -> Option<&'a mut [Rbool]>
source§impl CanBeNA for Rbool
impl CanBeNA for Rbool
use extendr_api::prelude::*;
test! {
assert!((<Rbool>::na()).is_na());
}source§impl Default for Rbool
impl Default for Rbool
use extendr_api::prelude::*;
test! {
assert_eq!(<Rbool>::default(), <bool>::default());
}source§impl<'de> Deserialize<'de> for Rbool
impl<'de> Deserialize<'de> for Rbool
source§fn deserialize<D>(deserializer: D) -> Result<Rbool, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Rbool, D::Error>where D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<'de> Deserializer<'de> for Rbool
impl<'de> Deserializer<'de> for Rbool
source§fn deserialize_any<V>(self, visitor: V) -> Result<V::Value>where
V: Visitor<'de>,
fn deserialize_any<V>(self, visitor: V) -> Result<V::Value>where V: Visitor<'de>,
Require the
Deserializer to figure out how to drive the visitor based
on what data type is in the input. Read moresource§fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a bool value.source§fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting an i8 value.source§fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting an i16 value.source§fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting an i32 value.source§fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting an i64 value.source§fn deserialize_i128<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i128<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
source§fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a u8 value.source§fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a u16 value.source§fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a u32 value.source§fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a u64 value.source§fn deserialize_u128<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u128<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
source§fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a f32 value.source§fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a f64 value.source§fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a char value.source§fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a string value and does
not benefit from taking ownership of buffered data owned by the
Deserializer. Read moresource§fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a string value and would
benefit from taking ownership of buffered data owned by the
Deserializer. Read moresource§fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a byte array and does not
benefit from taking ownership of buffered data owned by the
Deserializer. Read moresource§fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a byte array and would
benefit from taking ownership of buffered data owned by the
Deserializer. Read moresource§fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting an optional value. Read moresource§fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a unit value.source§fn deserialize_unit_struct<V>(
self,
name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_unit_struct<V>( self, name: &'static str, visitor: V ) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a unit struct with a
particular name.source§fn deserialize_newtype_struct<V>(
self,
name: &'static str,
visitor: V
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_newtype_struct<V>( self, name: &'static str, visitor: V ) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a newtype struct with a
particular name.source§fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a sequence of values.source§fn deserialize_tuple<V>(
self,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_tuple<V>( self, len: usize, visitor: V ) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a sequence of values and
knows how many values there are without looking at the serialized data.source§fn deserialize_tuple_struct<V>(
self,
name: &'static str,
len: usize,
visitor: V
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_tuple_struct<V>( self, name: &'static str, len: usize, visitor: V ) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a tuple struct with a
particular name and number of fields.source§fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a map of key-value pairs.source§fn deserialize_struct<V>(
self,
name: &'static str,
fields: &'static [&'static str],
visitor: V
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_struct<V>( self, name: &'static str, fields: &'static [&'static str], visitor: V ) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting a struct with a particular
name and fields.source§fn deserialize_enum<V>(
self,
name: &'static str,
variants: &'static [&'static str],
visitor: V
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_enum<V>( self, name: &'static str, variants: &'static [&'static str], visitor: V ) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting an enum value with a
particular name and possible variants.source§fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type is expecting the name of a struct
field or the discriminant of an enum variant.source§fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>where V: Visitor<'de>,
Hint that the
Deserialize type needs to deserialize a value whose type
doesn’t matter because it is ignored. Read moresource§fn is_human_readable(&self) -> bool
fn is_human_readable(&self) -> bool
Determine whether
Deserialize implementations should expect to
deserialize their human-readable form. Read moresource§impl FromIterator<Rbool> for Logicals
impl FromIterator<Rbool> for Logicals
source§fn from_iter<T: IntoIterator<Item = Rbool>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = Rbool>>(iter: T) -> Self
A more generalised iterator collector for small vectors. Generates a non-ALTREP vector.
source§impl PartialEq<Rbool> for bool
impl PartialEq<Rbool> for bool
use extendr_api::prelude::*;
test! {
assert!(<bool>::default().eq(&<Rbool>::default()));
}source§impl PartialEq<bool> for Rbool
impl PartialEq<bool> for Rbool
use extendr_api::prelude::*;
test! {
assert!(<Rbool>::default().eq(&<bool>::default()));
}source§impl PartialEq for Rbool
impl PartialEq for Rbool
use extendr_api::prelude::*;
test! {
assert!(<Rbool>::default().eq(&<Rbool>::default()));
assert!(!<Rbool>::na().eq(&<Rbool>::na()));
}source§impl PartialOrd<Rbool> for bool
impl PartialOrd<Rbool> for bool
use extendr_api::prelude::*;
test! {
assert_eq!(<Rbool>::default() < <Rbool>::default(), false);
assert_eq!(<Rbool>::default() <= <Rbool>::default(), true);
assert_eq!(<Rbool>::default() > <Rbool>::default(), false);
assert_eq!(<Rbool>::default() >= <Rbool>::default(), true);
}1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self and other) and is used by the <=
operator. Read moresource§impl PartialOrd<bool> for Rbool
impl PartialOrd<bool> for Rbool
use extendr_api::prelude::*;
test! {
assert_eq!(<bool>::default() < <Rbool>::na(), false);
assert_eq!(<bool>::default() <= <Rbool>::na(), false);
assert_eq!(<bool>::default() > <Rbool>::na(), false);
assert_eq!(<bool>::default() >= <Rbool>::na(), false);
assert_eq!(<bool>::default() < <Rbool>::default(), false);
assert_eq!(<bool>::default() <= <Rbool>::default(), true);
assert_eq!(<bool>::default() > <Rbool>::default(), false);
assert_eq!(<bool>::default() >= <Rbool>::default(), true);
}1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self and other) and is used by the <=
operator. Read moresource§impl PartialOrd for Rbool
impl PartialOrd for Rbool
use extendr_api::prelude::*;
test! {
assert_eq!(<Rbool>::default() < <Rbool>::na(), false);
assert_eq!(<Rbool>::default() <= <Rbool>::na(), false);
assert_eq!(<Rbool>::default() > <Rbool>::na(), false);
assert_eq!(<Rbool>::default() >= <Rbool>::na(), false);
assert_eq!(<Rbool>::default() < <Rbool>::default(), false);
assert_eq!(<Rbool>::default() <= <Rbool>::default(), true);
assert_eq!(<Rbool>::default() > <Rbool>::default(), false);
assert_eq!(<Rbool>::default() >= <Rbool>::default(), true);
}1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self and other) and is used by the <=
operator. Read moresource§impl ToVectorValue for &Rbool
impl ToVectorValue for &Rbool
fn sexptype() -> SEXPTYPE
fn to_logical(&self) -> i32where Self: Sized,
fn to_real(&self) -> f64where Self: Sized,
fn to_complex(&self) -> Rcomplexwhere Self: Sized,
fn to_integer(&self) -> i32where Self: Sized,
fn to_raw(&self) -> u8where Self: Sized,
fn to_sexp(&self) -> SEXPwhere Self: Sized,
source§impl ToVectorValue for Rbool
impl ToVectorValue for Rbool
fn sexptype() -> SEXPTYPE
fn to_logical(&self) -> i32where Self: Sized,
fn to_real(&self) -> f64where Self: Sized,
fn to_complex(&self) -> Rcomplexwhere Self: Sized,
fn to_integer(&self) -> i32where Self: Sized,
fn to_raw(&self) -> u8where Self: Sized,
fn to_sexp(&self) -> SEXPwhere Self: Sized,
impl Copy for Rbool
Auto Trait Implementations§
impl RefUnwindSafe for Rbool
impl Send for Rbool
impl Sync for Rbool
impl Unpin for Rbool
impl UnwindSafe for Rbool
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