Struct extendr_api::scalar::Rint
source · pub struct Rint(/* private fields */);Expand description
Rint is a wrapper for i32 in the context of an R’s integer vector.
Rint can have a value between i32::MIN+1 and i32::MAX
The value i32::MIN is used as "NA".
Rint has the same footprint as an i32 value allowing us to use it in zero copy slices.
Implementations§
source§impl Rint
impl Rint
sourcepub fn min(&self, other: Self) -> Self
pub fn min(&self, other: Self) -> Self
use extendr_api::prelude::*;
test! {
assert!(Rint::na().min(Rint::default()).is_na());
assert!(Rint::default().min(Rint::na()).is_na());
assert_eq!(Rint::default().min(Rint::default()), Rint::default());
assert_eq!(Rint::from(1).min(Rint::from(2)), Rint::from(1));
assert_eq!(Rint::from(2).min(Rint::from(1)), Rint::from(1));
}sourcepub fn max(&self, other: Self) -> Self
pub fn max(&self, other: Self) -> Self
use extendr_api::prelude::*;
test! {
assert!(Rint::na().max(Rint::default()).is_na());
assert!(Rint::default().max(Rint::na()).is_na());
assert_eq!(Rint::default().max(Rint::default()), Rint::default());
assert_eq!(Rint::from(1).max(Rint::from(2)), Rint::from(2));
assert_eq!(Rint::from(2).max(Rint::from(1)), Rint::from(2));
}Trait Implementations§
source§impl AddAssign<Rint> for &mut Rint
impl AddAssign<Rint> for &mut Rint
source§fn add_assign(&mut self, other: Rint)
fn add_assign(&mut self, other: Rint)
Add two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl AddAssign<Rint> for Option<i32>
impl AddAssign<Rint> for Option<i32>
source§fn add_assign(&mut self, other: Rint)
fn add_assign(&mut self, other: Rint)
Add two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl AddAssign<i32> for &mut Rint
impl AddAssign<i32> for &mut Rint
source§fn add_assign(&mut self, other: i32)
fn add_assign(&mut self, other: i32)
Add two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl AddAssign<i32> for Rint
impl AddAssign<i32> for Rint
source§fn add_assign(&mut self, other: i32)
fn add_assign(&mut self, other: i32)
Add two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl AddAssign for Rint
impl AddAssign for Rint
source§fn add_assign(&mut self, other: Rint)
fn add_assign(&mut self, other: Rint)
Add two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl<'a> AsTypedSlice<'a, Rint> for Robjwhere
Self: 'a,
impl<'a> AsTypedSlice<'a, Rint> for Robjwhere Self: 'a,
fn as_typed_slice(&self) -> Option<&'a [Rint]>
fn as_typed_slice_mut(&mut self) -> Option<&'a mut [Rint]>
source§impl CanBeNA for Rint
impl CanBeNA for Rint
use extendr_api::prelude::*;
test! {
assert!((<Rint>::na()).is_na());
}source§impl Default for Rint
impl Default for Rint
use extendr_api::prelude::*;
test! {
assert_eq!(<Rint>::default(), <i32>::default());
}source§impl<'de> Deserialize<'de> for Rint
impl<'de> Deserialize<'de> for Rint
source§fn deserialize<D>(deserializer: D) -> Result<Rint, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Rint, D::Error>where D: Deserializer<'de>,
source§impl<'de> Deserializer<'de> for Rint
impl<'de> Deserializer<'de> for Rint
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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>,
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
Deserialize implementations should expect to
deserialize their human-readable form. Read moresource§impl DivAssign<Rint> for &mut Rint
impl DivAssign<Rint> for &mut Rint
source§fn div_assign(&mut self, other: Rint)
fn div_assign(&mut self, other: Rint)
Divide two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl DivAssign<Rint> for Option<i32>
impl DivAssign<Rint> for Option<i32>
source§fn div_assign(&mut self, other: Rint)
fn div_assign(&mut self, other: Rint)
Divide two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl DivAssign<i32> for &mut Rint
impl DivAssign<i32> for &mut Rint
source§fn div_assign(&mut self, other: i32)
fn div_assign(&mut self, other: i32)
Divide two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl DivAssign<i32> for Rint
impl DivAssign<i32> for Rint
source§fn div_assign(&mut self, other: i32)
fn div_assign(&mut self, other: i32)
Divide two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl DivAssign for Rint
impl DivAssign for Rint
source§fn div_assign(&mut self, other: Rint)
fn div_assign(&mut self, other: Rint)
Divide two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl FromIterator<Rint> for Integers
impl FromIterator<Rint> for Integers
source§fn from_iter<T: IntoIterator<Item = Rint>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = Rint>>(iter: T) -> Self
A more generalised iterator collector for small vectors. Generates a non-ALTREP vector.
source§impl MulAssign<Rint> for &mut Rint
impl MulAssign<Rint> for &mut Rint
source§fn mul_assign(&mut self, other: Rint)
fn mul_assign(&mut self, other: Rint)
Multiply two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl MulAssign<Rint> for Option<i32>
impl MulAssign<Rint> for Option<i32>
source§fn mul_assign(&mut self, other: Rint)
fn mul_assign(&mut self, other: Rint)
Multiply two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl MulAssign<i32> for &mut Rint
impl MulAssign<i32> for &mut Rint
source§fn mul_assign(&mut self, other: i32)
fn mul_assign(&mut self, other: i32)
Multiply two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl MulAssign<i32> for Rint
impl MulAssign<i32> for Rint
source§fn mul_assign(&mut self, other: i32)
fn mul_assign(&mut self, other: i32)
Multiply two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl MulAssign for Rint
impl MulAssign for Rint
source§fn mul_assign(&mut self, other: Rint)
fn mul_assign(&mut self, other: Rint)
Multiply two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl PartialEq<Rint> for i32
impl PartialEq<Rint> for i32
use extendr_api::prelude::*;
test! {
assert!(<i32>::default().eq(&<Rint>::default()));
}source§impl PartialEq<i32> for Rint
impl PartialEq<i32> for Rint
use extendr_api::prelude::*;
test! {
assert!(<Rint>::default().eq(&<i32>::default()));
}source§impl PartialEq for Rint
impl PartialEq for Rint
use extendr_api::prelude::*;
test! {
assert!(<Rint>::default().eq(&<Rint>::default()));
assert!(!<Rint>::na().eq(&<Rint>::na()));
}source§impl PartialOrd<Rint> for i32
impl PartialOrd<Rint> for i32
use extendr_api::prelude::*;
test! {
assert_eq!(<Rint>::default() < <Rint>::default(), false);
assert_eq!(<Rint>::default() <= <Rint>::default(), true);
assert_eq!(<Rint>::default() > <Rint>::default(), false);
assert_eq!(<Rint>::default() >= <Rint>::default(), true);
}1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moresource§impl PartialOrd<i32> for Rint
impl PartialOrd<i32> for Rint
use extendr_api::prelude::*;
test! {
assert_eq!(<i32>::default() < <Rint>::na(), false);
assert_eq!(<i32>::default() <= <Rint>::na(), false);
assert_eq!(<i32>::default() > <Rint>::na(), false);
assert_eq!(<i32>::default() >= <Rint>::na(), false);
assert_eq!(<i32>::default() < <Rint>::default(), false);
assert_eq!(<i32>::default() <= <Rint>::default(), true);
assert_eq!(<i32>::default() > <Rint>::default(), false);
assert_eq!(<i32>::default() >= <Rint>::default(), true);
}1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moresource§impl PartialOrd for Rint
impl PartialOrd for Rint
use extendr_api::prelude::*;
test! {
assert_eq!(<Rint>::default() < <Rint>::na(), false);
assert_eq!(<Rint>::default() <= <Rint>::na(), false);
assert_eq!(<Rint>::default() > <Rint>::na(), false);
assert_eq!(<Rint>::default() >= <Rint>::na(), false);
assert_eq!(<Rint>::default() < <Rint>::default(), false);
assert_eq!(<Rint>::default() <= <Rint>::default(), true);
assert_eq!(<Rint>::default() > <Rint>::default(), false);
assert_eq!(<Rint>::default() >= <Rint>::default(), true);
}1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moresource§impl SubAssign<Rint> for &mut Rint
impl SubAssign<Rint> for &mut Rint
source§fn sub_assign(&mut self, other: Rint)
fn sub_assign(&mut self, other: Rint)
Subtract two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl SubAssign<Rint> for Option<i32>
impl SubAssign<Rint> for Option<i32>
source§fn sub_assign(&mut self, other: Rint)
fn sub_assign(&mut self, other: Rint)
Subtract two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl SubAssign<i32> for &mut Rint
impl SubAssign<i32> for &mut Rint
source§fn sub_assign(&mut self, other: i32)
fn sub_assign(&mut self, other: i32)
Subtract two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl SubAssign<i32> for Rint
impl SubAssign<i32> for Rint
source§fn sub_assign(&mut self, other: i32)
fn sub_assign(&mut self, other: i32)
Subtract two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.
source§impl SubAssign for Rint
impl SubAssign for Rint
source§fn sub_assign(&mut self, other: Rint)
fn sub_assign(&mut self, other: Rint)
Subtract two Rint values or an option of i32, modifying the left-hand side in place. Overflows to NA.