pub struct JsRegExp { /* private fields */ }
Expand description

JsRegExp provides a wrapper for Boa’s implementation of the ECMAScript RegExp builtin object

Examples

Create a JsRegExp and run RegExp.prototype.test( String )

// Initialize the `Context`
let context = &mut Context::default();

// Create a new RegExp with pattern and flags
let regexp = JsRegExp::new("foo", "gi", context)?;

let test_result = regexp.test("football", context)?;
assert!(test_result);

let to_string = regexp.to_string(context)?;
assert_eq!(to_string, String::from("/foo/gi"));

Implementations§

source§

impl JsRegExp

source

pub fn new<S>(pattern: S, flags: S, context: &mut Context<'_>) -> JsResult<Self>where S: Into<JsValue>,

Create a new JsRegExp object

// Initialize the `Context`
let context = &mut Context::default();

// Create a new RegExp with pattern and flags
let regexp = JsRegExp::new("foo", "gi", context)?;
source

pub fn from_object(object: JsObject) -> JsResult<Self>

Create a JsRegExp from a regular expression JsObject

source

pub fn has_indices(&self, context: &mut Context<'_>) -> JsResult<bool>

Returns a boolean value for whether the d flag is present in JsRegExp flags

source

pub fn global(&self, context: &mut Context<'_>) -> JsResult<bool>

Returns a boolean value for whether the g flag is present in JsRegExp flags

source

pub fn ignore_case(&self, context: &mut Context<'_>) -> JsResult<bool>

Returns a boolean value for whether the i flag is present in JsRegExp flags

source

pub fn multiline(&self, context: &mut Context<'_>) -> JsResult<bool>

Returns a boolean value for whether the m flag is present in JsRegExp flags

source

pub fn dot_all(&self, context: &mut Context<'_>) -> JsResult<bool>

Returns a boolean value for whether the s flag is present in JsRegExp flags

source

pub fn unicode(&self, context: &mut Context<'_>) -> JsResult<bool>

Returns a boolean value for whether the u flag is present in JsRegExp flags

source

pub fn sticky(&self, context: &mut Context<'_>) -> JsResult<bool>

Returns a boolean value for whether the y flag is present in JsRegExp flags

source

pub fn flags(&self, context: &mut Context<'_>) -> JsResult<String>

Returns the flags of JsRegExp as a string

let regexp = JsRegExp::new("foo", "gi", context)?;

let flags = regexp.flags(context)?;
assert_eq!(flags, String::from("gi"));
source

pub fn source(&self, context: &mut Context<'_>) -> JsResult<String>

Returns the source pattern of JsRegExp as a string

let regexp = JsRegExp::new("foo", "gi", context)?;

let src = regexp.source(context)?;
assert_eq!(src, String::from("foo"));
source

pub fn test<S>( &self, search_string: S, context: &mut Context<'_> ) -> JsResult<bool>where S: Into<JsValue>,

Executes a search for a match between JsRegExp and the provided string

let regexp = JsRegExp::new("foo", "gi", context)?;

let test_result = regexp.test("football", context)?;
assert!(test_result);
source

pub fn exec<S>( &self, search_string: S, context: &mut Context<'_> ) -> JsResult<Option<JsArray>>where S: Into<JsValue>,

Executes a search for a match in a specified string

Returns a JsArray containing matched value and updates the lastIndex property, or None

source

pub fn to_string(&self, context: &mut Context<'_>) -> JsResult<String>

Return a string representing the regular expression.

let regexp = JsRegExp::new("foo", "gi", context)?;

let to_string = regexp.to_string(context)?;
assert_eq!(to_string, String::from("/foo/gi"));

Methods from Deref<Target = JsObject>§

source

pub fn borrow(&self) -> Ref<'_, Object>

Immutably borrows the Object.

The borrow lasts until the returned Ref exits scope. Multiple immutable borrows can be taken out at the same time.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn borrow_mut(&self) -> RefMut<'_, Object, Object>

Mutably borrows the Object.

The borrow lasts until the returned RefMut exits scope. The object cannot be borrowed while this borrow is active.

Panics

Panics if the object is currently borrowed.

source

pub fn try_borrow(&self) -> StdResult<Ref<'_, Object>, BorrowError>

Immutably borrows the Object, returning an error if the value is currently mutably borrowed.

The borrow lasts until the returned GcCellRef exits scope. Multiple immutable borrows can be taken out at the same time.

This is the non-panicking variant of borrow.

source

pub fn try_borrow_mut( &self ) -> StdResult<RefMut<'_, Object, Object>, BorrowMutError>

Mutably borrows the object, returning an error if the value is currently borrowed.

The borrow lasts until the returned GcCellRefMut exits scope. The object be borrowed while this borrow is active.

This is the non-panicking variant of borrow_mut.

source

pub fn is<T>(&self) -> boolwhere T: NativeObject,

Return true if it is a native object and the native type is T.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn downcast_ref<T>(&self) -> Option<Ref<'_, T>>where T: NativeObject,

Downcast a reference to the object, if the object is type native object type T.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn downcast_mut<T>(&self) -> Option<RefMut<'_, Object, T>>where T: NativeObject,

Downcast a mutable reference to the object, if the object is type native object type T.

Panics

Panics if the object is currently borrowed.

source

pub fn prototype(&self) -> JsPrototype

Get the prototype of the object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn set_prototype(&self, prototype: JsPrototype) -> bool

Set the prototype of the object.

Panics

Panics if the object is currently mutably borrowed

source

pub fn is_array(&self) -> bool

Checks if it’s an Array object.

source

pub fn is_data_view(&self) -> bool

Checks if it’s a DataView object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_array_iterator(&self) -> bool

Checks if it is an ArrayIterator object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_array_buffer(&self) -> bool

Checks if it’s an ArrayBuffer object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_map(&self) -> bool

Checks if it is a Map object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_map_iterator(&self) -> bool

Checks if it’s a MapIterator object

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_set(&self) -> bool

Checks if it is a Set object

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_set_iterator(&self) -> bool

Checks if it is a SetIterator object

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_string(&self) -> bool

Checks if it’s a String object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_function(&self) -> bool

Checks if it’s a Function object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_generator(&self) -> bool

Checks if it’s a Generator object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_symbol(&self) -> bool

Checks if it’s a Symbol object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_error(&self) -> bool

Checks if it’s an Error object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_boolean(&self) -> bool

Checks if it’s a Boolean object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_number(&self) -> bool

Checks if it’s a Number object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_bigint(&self) -> bool

Checks if it’s a BigInt object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_date(&self) -> bool

Checks if it’s a Date object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_regexp(&self) -> bool

Checks if it’s a RegExp object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_typed_array(&self) -> bool

Checks if it’s a TypedArray object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_typed_uint8_array(&self) -> bool

Checks if it’s a Uint8Array object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_typed_int8_array(&self) -> bool

Checks if it’s a Int8Array object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_typed_uint16_array(&self) -> bool

Checks if it’s a Uint16Array object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_typed_int16_array(&self) -> bool

Checks if it’s a Int16Array object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_typed_uint32_array(&self) -> bool

Checks if it’s a Uint32Array object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_typed_int32_array(&self) -> bool

Checks if it’s a Int32Array object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_typed_float32_array(&self) -> bool

Checks if it’s a Float32Array object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_typed_float64_array(&self) -> bool

Checks if it’s a Float64Array object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_promise(&self) -> bool

Checks if it’s a Promise object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_ordinary(&self) -> bool

Checks if it’s an ordinary object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_proxy(&self) -> bool

Checks if it’s a proxy object.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn is_native_object(&self) -> bool

Returns true if it holds an Rust type that implements NativeObject.

Panics

Panics if the object is currently mutably borrowed.

source

pub fn to_property_descriptor( &self, context: &mut Context<'_> ) -> JsResult<PropertyDescriptor>

The abstract operation ToPropertyDescriptor.

More information:

source

pub fn copy_data_properties<K>( &self, source: &JsValue, excluded_keys: Vec<K>, context: &mut Context<'_> ) -> JsResult<()>where K: Into<PropertyKey>,

7.3.25 CopyDataProperties ( target, source, excludedItems )

More information:

source

pub fn insert_property<K, P>(&self, key: K, property: P) -> boolwhere K: Into<PropertyKey>, P: Into<PropertyDescriptor>,

Inserts a field in the object properties without checking if it’s writable.

If a field was already in the object with the same name, than true is returned with that field, otherwise false is returned.

source

pub fn is_callable(&self) -> bool

It determines if Object is a callable function with a [[Call]] internal method.

More information:

source

pub fn is_constructor(&self) -> bool

It determines if Object is a function object with a [[Construct]] internal method.

More information:

source

pub fn is_global(&self) -> bool

Returns true if the JsObject is the global for a Realm

source

pub fn is_extensible(&self, context: &mut Context<'_>) -> JsResult<bool>

Check if object is extensible.

More information:

source

pub fn get<K>(&self, key: K, context: &mut Context<'_>) -> JsResult<JsValue>where K: Into<PropertyKey>,

Get property from object or throw.

More information:

source

pub fn set<K, V>( &self, key: K, value: V, throw: bool, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>, V: Into<JsValue>,

set property of object or throw if bool flag is passed.

More information:

source

pub fn create_data_property<K, V>( &self, key: K, value: V, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>, V: Into<JsValue>,

Create data property

More information:

source

pub fn create_data_property_or_throw<K, V>( &self, key: K, value: V, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>, V: Into<JsValue>,

Create data property or throw

More information:

source

pub fn define_property_or_throw<K, P>( &self, key: K, desc: P, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>, P: Into<PropertyDescriptor>,

Define property or throw.

More information:

source

pub fn delete_property_or_throw<K>( &self, key: K, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>,

Defines the property or throws a TypeError if the operation fails.

More information:

source

pub fn has_property<K>( &self, key: K, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>,

Check if object has property.

More information:

source

pub fn has_own_property<K>( &self, key: K, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>,

Check if object has an own property.

More information:

source

pub fn call( &self, this: &JsValue, args: &[JsValue], context: &mut Context<'_> ) -> JsResult<JsValue>

Call ( F, V [ , argumentsList ] )

Panics

Panics if the object is currently mutably borrowed.

More information:

source

pub fn construct( &self, args: &[JsValue], new_target: Option<&Self>, context: &mut Context<'_> ) -> JsResult<Self>

Construct ( F [ , argumentsList [ , newTarget ] ] )

Construct an instance of this object with the specified arguments.

Panics

Panics if the object is currently mutably borrowed.

More information:

source

pub fn set_integrity_level( &self, level: IntegrityLevel, context: &mut Context<'_> ) -> JsResult<bool>

Make the object sealed or frozen.

More information:

source

pub fn test_integrity_level( &self, level: IntegrityLevel, context: &mut Context<'_> ) -> JsResult<bool>

Check if the object is sealed or frozen.

More information:

Trait Implementations§

source§

impl Clone for JsRegExp

source§

fn clone(&self) -> JsRegExp

Returns a copy 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 JsRegExp

source§

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

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

impl Deref for JsRegExp

§

type Target = JsObject

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Drop for JsRegExp

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Finalize for JsRegExp

source§

fn finalize(&self)

Cleanup logic for a type.
source§

impl From<JsRegExp> for JsObject

source§

fn from(o: JsRegExp) -> Self

Converts to this type from the input type.
source§

impl From<JsRegExp> for JsValue

source§

fn from(o: JsRegExp) -> Self

Converts to this type from the input type.
source§

impl Trace for JsRegExp

source§

unsafe fn trace(&self)

Marks all contained Gcs. Read more
source§

unsafe fn root(&self)

Increments the root-count of all contained Gcs. Read more
source§

unsafe fn unroot(&self)

Decrements the root-count of all contained Gcs. Read more
source§

fn run_finalizer(&self)

Runs Finalize::finalize on this object and all contained subobjects.
source§

impl TryFromJs for JsRegExp

source§

fn try_from_js(value: &JsValue, _context: &mut Context<'_>) -> JsResult<Self>

This function tries to convert a JavaScript value into Self.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> Conv for T

source§

fn conv<T>(self) -> Twhere Self: Into<T>,

Converts self into T using Into<T>. 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 Twhere 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> NativeObject for Twhere T: Any + Trace,

source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert the Rust type which implements NativeObject to a &dyn Any.
source§

fn as_mut_any(&mut self) -> &mut (dyn Any + 'static)

Convert the Rust type which implements NativeObject to a &mut dyn Any.
source§

impl<T> Pipe for Twhere T: ?Sized,

source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> Rwhere Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Tap for T

source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> ToOwned for Twhere T: Clone,

§

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> TryConv for T

source§

fn try_conv<T>(self) -> Result<T, Self::Error>where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> ErasedDestructor for Twhere T: 'static,