#[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 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more