Struct boa_engine::object::builtins::JsRegExp
source · 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
impl JsRegExp
sourcepub fn new<S>(pattern: S, flags: S, context: &mut Context<'_>) -> JsResult<Self>where
S: Into<JsValue>,
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)?;
sourcepub fn from_object(object: JsObject) -> JsResult<Self>
pub fn from_object(object: JsObject) -> JsResult<Self>
Create a JsRegExp
from a regular expression JsObject
sourcepub fn has_indices(&self, context: &mut Context<'_>) -> JsResult<bool>
pub fn has_indices(&self, context: &mut Context<'_>) -> JsResult<bool>
Returns a boolean value for whether the d
flag is present in JsRegExp
flags
sourcepub fn global(&self, context: &mut Context<'_>) -> JsResult<bool>
pub fn global(&self, context: &mut Context<'_>) -> JsResult<bool>
Returns a boolean value for whether the g
flag is present in JsRegExp
flags
sourcepub fn ignore_case(&self, context: &mut Context<'_>) -> JsResult<bool>
pub fn ignore_case(&self, context: &mut Context<'_>) -> JsResult<bool>
Returns a boolean value for whether the i
flag is present in JsRegExp
flags
sourcepub fn multiline(&self, context: &mut Context<'_>) -> JsResult<bool>
pub fn multiline(&self, context: &mut Context<'_>) -> JsResult<bool>
Returns a boolean value for whether the m
flag is present in JsRegExp
flags
sourcepub fn dot_all(&self, context: &mut Context<'_>) -> JsResult<bool>
pub fn dot_all(&self, context: &mut Context<'_>) -> JsResult<bool>
Returns a boolean value for whether the s
flag is present in JsRegExp
flags
sourcepub fn unicode(&self, context: &mut Context<'_>) -> JsResult<bool>
pub fn unicode(&self, context: &mut Context<'_>) -> JsResult<bool>
Returns a boolean value for whether the u
flag is present in JsRegExp
flags
sourcepub fn sticky(&self, context: &mut Context<'_>) -> JsResult<bool>
pub fn sticky(&self, context: &mut Context<'_>) -> JsResult<bool>
Returns a boolean value for whether the y
flag is present in JsRegExp
flags
sourcepub fn flags(&self, context: &mut Context<'_>) -> JsResult<String>
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"));
sourcepub fn source(&self, context: &mut Context<'_>) -> JsResult<String>
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"));
sourcepub fn test<S>(
&self,
search_string: S,
context: &mut Context<'_>
) -> JsResult<bool>where
S: Into<JsValue>,
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);
Methods from Deref<Target = JsObject>§
sourcepub fn borrow(&self) -> Ref<'_, Object>
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.
sourcepub fn borrow_mut(&self) -> RefMut<'_, Object, Object>
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.
sourcepub fn try_borrow(&self) -> StdResult<Ref<'_, Object>, BorrowError>
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
.
sourcepub fn try_borrow_mut(
&self
) -> StdResult<RefMut<'_, Object, Object>, BorrowMutError>
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
.
sourcepub fn is<T>(&self) -> boolwhere
T: NativeObject,
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.
sourcepub fn downcast_ref<T>(&self) -> Option<Ref<'_, T>>where
T: NativeObject,
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.
sourcepub fn downcast_mut<T>(&self) -> Option<RefMut<'_, Object, T>>where
T: NativeObject,
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.
sourcepub fn prototype(&self) -> JsPrototype
pub fn prototype(&self) -> JsPrototype
sourcepub fn set_prototype(&self, prototype: JsPrototype) -> bool
pub fn set_prototype(&self, prototype: JsPrototype) -> bool
sourcepub fn is_data_view(&self) -> bool
pub fn is_data_view(&self) -> bool
sourcepub fn is_array_iterator(&self) -> bool
pub fn is_array_iterator(&self) -> bool
sourcepub fn is_array_buffer(&self) -> bool
pub fn is_array_buffer(&self) -> bool
sourcepub fn is_map_iterator(&self) -> bool
pub fn is_map_iterator(&self) -> bool
sourcepub fn is_set_iterator(&self) -> bool
pub fn is_set_iterator(&self) -> bool
sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
sourcepub fn is_generator(&self) -> bool
pub fn is_generator(&self) -> bool
sourcepub fn is_boolean(&self) -> bool
pub fn is_boolean(&self) -> bool
sourcepub fn is_typed_array(&self) -> bool
pub fn is_typed_array(&self) -> bool
sourcepub fn is_typed_uint8_array(&self) -> bool
pub fn is_typed_uint8_array(&self) -> bool
sourcepub fn is_typed_int8_array(&self) -> bool
pub fn is_typed_int8_array(&self) -> bool
sourcepub fn is_typed_uint16_array(&self) -> bool
pub fn is_typed_uint16_array(&self) -> bool
sourcepub fn is_typed_int16_array(&self) -> bool
pub fn is_typed_int16_array(&self) -> bool
sourcepub fn is_typed_uint32_array(&self) -> bool
pub fn is_typed_uint32_array(&self) -> bool
sourcepub fn is_typed_int32_array(&self) -> bool
pub fn is_typed_int32_array(&self) -> bool
sourcepub fn is_typed_float32_array(&self) -> bool
pub fn is_typed_float32_array(&self) -> bool
sourcepub fn is_typed_float64_array(&self) -> bool
pub fn is_typed_float64_array(&self) -> bool
sourcepub fn is_promise(&self) -> bool
pub fn is_promise(&self) -> bool
sourcepub fn is_ordinary(&self) -> bool
pub fn is_ordinary(&self) -> bool
sourcepub fn is_native_object(&self) -> bool
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.
sourcepub fn to_property_descriptor(
&self,
context: &mut Context<'_>
) -> JsResult<PropertyDescriptor>
pub fn to_property_descriptor( &self, context: &mut Context<'_> ) -> JsResult<PropertyDescriptor>
sourcepub fn copy_data_properties<K>(
&self,
source: &JsValue,
excluded_keys: Vec<K>,
context: &mut Context<'_>
) -> JsResult<()>where
K: Into<PropertyKey>,
pub fn copy_data_properties<K>( &self, source: &JsValue, excluded_keys: Vec<K>, context: &mut Context<'_> ) -> JsResult<()>where K: Into<PropertyKey>,
sourcepub fn insert_property<K, P>(&self, key: K, property: P) -> boolwhere
K: Into<PropertyKey>,
P: Into<PropertyDescriptor>,
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.
sourcepub fn is_callable(&self) -> bool
pub fn is_callable(&self) -> bool
It determines if Object is a callable function with a [[Call]]
internal method.
More information:
sourcepub fn is_constructor(&self) -> bool
pub fn is_constructor(&self) -> bool
It determines if Object is a function object with a [[Construct]]
internal method.
More information:
sourcepub fn is_extensible(&self, context: &mut Context<'_>) -> JsResult<bool>
pub fn is_extensible(&self, context: &mut Context<'_>) -> JsResult<bool>
sourcepub fn get<K>(&self, key: K, context: &mut Context<'_>) -> JsResult<JsValue>where
K: Into<PropertyKey>,
pub fn get<K>(&self, key: K, context: &mut Context<'_>) -> JsResult<JsValue>where K: Into<PropertyKey>,
sourcepub fn set<K, V>(
&self,
key: K,
value: V,
throw: bool,
context: &mut Context<'_>
) -> JsResult<bool>where
K: Into<PropertyKey>,
V: Into<JsValue>,
pub fn set<K, V>( &self, key: K, value: V, throw: bool, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>, V: Into<JsValue>,
sourcepub fn create_data_property<K, V>(
&self,
key: K,
value: V,
context: &mut Context<'_>
) -> JsResult<bool>where
K: Into<PropertyKey>,
V: Into<JsValue>,
pub fn create_data_property<K, V>( &self, key: K, value: V, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>, V: Into<JsValue>,
sourcepub 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>,
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>,
sourcepub fn define_property_or_throw<K, P>(
&self,
key: K,
desc: P,
context: &mut Context<'_>
) -> JsResult<bool>where
K: Into<PropertyKey>,
P: Into<PropertyDescriptor>,
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>,
sourcepub fn delete_property_or_throw<K>(
&self,
key: K,
context: &mut Context<'_>
) -> JsResult<bool>where
K: Into<PropertyKey>,
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:
sourcepub fn has_property<K>(
&self,
key: K,
context: &mut Context<'_>
) -> JsResult<bool>where
K: Into<PropertyKey>,
pub fn has_property<K>( &self, key: K, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>,
sourcepub fn has_own_property<K>(
&self,
key: K,
context: &mut Context<'_>
) -> JsResult<bool>where
K: Into<PropertyKey>,
pub fn has_own_property<K>( &self, key: K, context: &mut Context<'_> ) -> JsResult<bool>where K: Into<PropertyKey>,
sourcepub fn call(
&self,
this: &JsValue,
args: &[JsValue],
context: &mut Context<'_>
) -> JsResult<JsValue>
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:
sourcepub fn construct(
&self,
args: &[JsValue],
new_target: Option<&Self>,
context: &mut Context<'_>
) -> JsResult<Self>
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:
sourcepub fn set_integrity_level(
&self,
level: IntegrityLevel,
context: &mut Context<'_>
) -> JsResult<bool>
pub fn set_integrity_level( &self, level: IntegrityLevel, context: &mut Context<'_> ) -> JsResult<bool>
sourcepub fn test_integrity_level(
&self,
level: IntegrityLevel,
context: &mut Context<'_>
) -> JsResult<bool>
pub fn test_integrity_level( &self, level: IntegrityLevel, context: &mut Context<'_> ) -> JsResult<bool>
Trait Implementations§
source§impl Trace for JsRegExp
impl Trace for JsRegExp
source§fn run_finalizer(&self)
fn run_finalizer(&self)
Finalize::finalize
on this object and all
contained subobjects.Auto Trait Implementations§
impl !RefUnwindSafe for JsRegExp
impl !Send for JsRegExp
impl !Sync for JsRegExp
impl Unpin for JsRegExp
impl !UnwindSafe for JsRegExp
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> NativeObject for Twhere
T: Any + Trace,
impl<T> NativeObject for Twhere T: Any + Trace,
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
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,
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,
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,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
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,
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,
self
, then passes self.as_mut()
into the pipe
function.source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.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,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.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,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.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,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.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,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.