RRegexp

Struct RRegexp 

Source
#[repr(C)]
pub struct RRegexp { pub basic: RBasic, pub ptr: *mut re_pattern_buffer, pub src: VALUE, pub usecnt: c_ulong, }
Expand description

§Ruby’s regular expression. A regexp is compiled into its own intermediate representation. This one holds that info. Regexp “match” operation then executes that IR.

Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.2.3

Fields§

§basic: RBasic

§Basic part, including flags and class.

Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.2.3

§ptr: *mut re_pattern_buffer

The pattern buffer. This is a quasi-opaque struct that holds compiled intermediate representation of the regular expression.

§@note Compilation of a regexp could be delayed until actual match.

Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.2.3

§src: VALUE

§Source code of this expression.

Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.2.3

§usecnt: c_ulong

Reference count. A regexp match can take extraordinarily long time to run. Ruby’s regular expression is heavily extended and not a regular language any longer; runs in NP-time in practice. Now, Ruby also has threads and GVL. In order to prevent long GVL lockup, our regexp engine can release it on occasions. This means that multiple threads can touch a regular expressions at once. That itself is okay. But their cleanup phase shall wait for all the concurrent runs, to prevent use-after-free situation. This field is used to count such threads that are executing this particular pattern buffer.

§@warning Of course, touching this field from extension libraries causes catastrophic effects. Just leave it.

Generated by rb-sys for Ruby mri-x86_64-linux-gnu-3.2.3

Trait Implementations§

Source§

impl Clone for RRegexp

Source§

fn clone(&self) -> RRegexp

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RRegexp

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for RRegexp

Source§

fn eq(&self, other: &RRegexp) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for RRegexp

Source§

impl Eq for RRegexp

Source§

impl StructuralPartialEq for RRegexp

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.