#[repr(u32)]pub enum ruby_rarray_flags {
RARRAY_EMBED_FLAG = 8_192,
RARRAY_EMBED_LEN_MASK = 4_161_536,
RARRAY_TRANSIENT_FLAG = 33_554_432,
}Expand description
§Private
Bits that you can set to ::RBasic::flags.
@warning These enums are not the only bits we use for arrays.
@internal
§Unlike strings, flag usages for arrays are scattered across the entire source codes. @shyouhei doesn’t know the complete list. But what is listed here is at least incomplete.
Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.2.3
Variants§
RARRAY_EMBED_FLAG = 8_192
This flag has something to do with memory footprint. If the array is “small” enough, ruby tries to be creative to abuse padding bits of struct ::RArray for storing its contents. This flag denotes that situation.
@warning This bit has to be considered read-only. Setting/clearing this bit without corresponding fix up must cause immediate SEGV. Also, internal structures of an array change dynamically and transparently throughout of its lifetime. Don’t assume it being persistent.
@internal
§3rd parties must not be aware that there even is more than one way to store array elements. It was a bad idea to expose this to them.
Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.2.3
RARRAY_EMBED_LEN_MASK = 4_161_536
Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.2.3
RARRAY_TRANSIENT_FLAG = 33_554_432
This flag has something to do with an array’s “transiency”. A transient array is an array of young generation (of generational GC), who stores its elements inside of dedicated memory pages called a transient heap. Not every young generation share that storage scheme, but elder generations must no join.
@internal
§3rd parties must not be aware that there even is more than one way to store array elements. It was a bad idea to expose this to them.
Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.2.3
Trait Implementations§
Source§impl Clone for ruby_rarray_flags
impl Clone for ruby_rarray_flags
Source§fn clone(&self) -> ruby_rarray_flags
fn clone(&self) -> ruby_rarray_flags
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ruby_rarray_flags
impl Debug for ruby_rarray_flags
Source§impl Hash for ruby_rarray_flags
impl Hash for ruby_rarray_flags
Source§impl PartialEq for ruby_rarray_flags
impl PartialEq for ruby_rarray_flags
impl Copy for ruby_rarray_flags
impl Eq for ruby_rarray_flags
impl StructuralPartialEq for ruby_rarray_flags
Auto Trait Implementations§
impl Freeze for ruby_rarray_flags
impl RefUnwindSafe for ruby_rarray_flags
impl Send for ruby_rarray_flags
impl Sync for ruby_rarray_flags
impl Unpin for ruby_rarray_flags
impl UnwindSafe for ruby_rarray_flags
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)