#[repr(C)]pub struct String(_);
Expand description
A JavaScript string value (ECMA-262, 4.3.17).
Implementations§
source§impl String
impl String
sourcepub fn max_length() -> usize
pub fn max_length() -> usize
The maximum length (in bytes) of a buffer that a v8::String can be built from. Attempting to create a v8::String from a larger buffer will result in None being returned.
pub fn empty<'s>(scope: &mut HandleScope<'s, ()>) -> Local<'s, String>
sourcepub fn new_from_utf8<'s>(
scope: &mut HandleScope<'s, ()>,
buffer: &[u8],
new_type: NewStringType
) -> Option<Local<'s, String>>
pub fn new_from_utf8<'s>(
scope: &mut HandleScope<'s, ()>,
buffer: &[u8],
new_type: NewStringType
) -> Option<Local<'s, String>>
Allocates a new string from UTF-8 data. Only returns an empty value when length > kMaxLength
sourcepub fn new_from_one_byte<'s>(
scope: &mut HandleScope<'s, ()>,
buffer: &[u8],
new_type: NewStringType
) -> Option<Local<'s, String>>
pub fn new_from_one_byte<'s>(
scope: &mut HandleScope<'s, ()>,
buffer: &[u8],
new_type: NewStringType
) -> Option<Local<'s, String>>
Allocates a new string from Latin-1 data. Only returns an empty value when length > kMaxLength.
sourcepub fn new_from_two_byte<'s>(
scope: &mut HandleScope<'s, ()>,
buffer: &[u16],
new_type: NewStringType
) -> Option<Local<'s, String>>
pub fn new_from_two_byte<'s>(
scope: &mut HandleScope<'s, ()>,
buffer: &[u16],
new_type: NewStringType
) -> Option<Local<'s, String>>
Allocates a new string from UTF-16 data. Only returns an empty value when length > kMaxLength.
sourcepub fn length(&self) -> usize
pub fn length(&self) -> usize
Returns the number of characters (UTF-16 code units) in this string.
sourcepub fn utf8_length(&self, scope: &mut Isolate) -> usize
pub fn utf8_length(&self, scope: &mut Isolate) -> usize
Returns the number of bytes in the UTF-8 encoded representation of this string.
sourcepub fn write(
&self,
scope: &mut Isolate,
buffer: &mut [u16],
start: usize,
options: WriteOptions
) -> usize
pub fn write(
&self,
scope: &mut Isolate,
buffer: &mut [u16],
start: usize,
options: WriteOptions
) -> usize
Writes the contents of the string to an external buffer, as 16-bit (UTF-16) character codes.
sourcepub fn write_one_byte(
&self,
scope: &mut Isolate,
buffer: &mut [u8],
start: usize,
options: WriteOptions
) -> usize
pub fn write_one_byte(
&self,
scope: &mut Isolate,
buffer: &mut [u8],
start: usize,
options: WriteOptions
) -> usize
Writes the contents of the string to an external buffer, as one-byte (Latin-1) characters.
sourcepub fn write_utf8(
&self,
scope: &mut Isolate,
buffer: &mut [u8],
nchars_ref: Option<&mut usize>,
options: WriteOptions
) -> usize
pub fn write_utf8(
&self,
scope: &mut Isolate,
buffer: &mut [u8],
nchars_ref: Option<&mut usize>,
options: WriteOptions
) -> usize
Writes the contents of the string to an external buffer, as UTF-8.
sourcepub fn write_utf8_uninit(
&self,
scope: &mut Isolate,
buffer: &mut [MaybeUninit<u8>],
nchars_ref: Option<&mut usize>,
options: WriteOptions
) -> usize
pub fn write_utf8_uninit(
&self,
scope: &mut Isolate,
buffer: &mut [MaybeUninit<u8>],
nchars_ref: Option<&mut usize>,
options: WriteOptions
) -> usize
Writes the contents of the string to an external buffer, as UTF-8.
pub fn new<'s>(
scope: &mut HandleScope<'s, ()>,
value: &str
) -> Option<Local<'s, String>>
pub fn new_external_onebyte_static<'s>(
scope: &mut HandleScope<'s, ()>,
buffer: &'static [u8]
) -> Option<Local<'s, String>>
pub fn new_external_twobyte_static<'s>(
scope: &mut HandleScope<'s, ()>,
buffer: &'static [u16]
) -> Option<Local<'s, String>>
sourcepub fn is_external(&self) -> bool
pub fn is_external(&self) -> bool
True if string is external
sourcepub fn is_external_onebyte(&self) -> bool
pub fn is_external_onebyte(&self) -> bool
True if string is external & one-byte (e.g: created with new_external_onebyte_static)
sourcepub fn is_external_twobyte(&self) -> bool
pub fn is_external_twobyte(&self) -> bool
True if string is external & two-byte (e.g: created with new_external_twobyte_static)
sourcepub fn is_onebyte(&self) -> bool
pub fn is_onebyte(&self) -> bool
True if string is known to contain only one-byte data. Doesn’t read the string so can return false positives.
For a method that will not return false positives at the cost of
potentially reading the entire string, use contains_only_onebyte()
.
sourcepub fn contains_only_onebyte(&self) -> bool
pub fn contains_only_onebyte(&self) -> bool
True if the string contains only one-byte data. Will read the entire string in some cases.
sourcepub fn to_rust_string_lossy(&self, scope: &mut Isolate) -> String
pub fn to_rust_string_lossy(&self, scope: &mut Isolate) -> String
Convenience function not present in the original V8 API.
Methods from Deref<Target = Name>§
sourcepub fn get_identity_hash(&self) -> NonZeroI32
pub fn get_identity_hash(&self) -> NonZeroI32
Returns the V8 hash value for this value. The current implementation uses a hidden property to store the identity hash.
The return value will never be 0. Also, it is not guaranteed to be unique.
Methods from Deref<Target = Value>§
sourcepub fn is_undefined(&self) -> bool
pub fn is_undefined(&self) -> bool
Returns true if this value is the undefined value. See ECMA-262 4.3.10.
sourcepub fn is_null(&self) -> bool
pub fn is_null(&self) -> bool
Returns true if this value is the null value. See ECMA-262 4.3.11.
sourcepub fn is_null_or_undefined(&self) -> bool
pub fn is_null_or_undefined(&self) -> bool
Returns true if this value is either the null or the undefined value. See ECMA-262 4.3.11. and 4.3.12
sourcepub fn is_true(&self) -> bool
pub fn is_true(&self) -> bool
Returns true if this value is true.
This is not the same as BooleanValue()
. The latter performs a
conversion to boolean, i.e. the result of Boolean(value)
in JS, whereas
this checks value === true
.
sourcepub fn is_false(&self) -> bool
pub fn is_false(&self) -> bool
Returns true if this value is false.
This is not the same as !BooleanValue()
. The latter performs a
conversion to boolean, i.e. the result of !Boolean(value)
in JS, whereas
this checks value === false
.
sourcepub fn is_name(&self) -> bool
pub fn is_name(&self) -> bool
Returns true if this value is a symbol or a string.
This is equivalent to
typeof value === 'string' || typeof value === 'symbol'
in JS.
sourcepub fn is_string(&self) -> bool
pub fn is_string(&self) -> bool
Returns true if this value is an instance of the String type. See ECMA-262 8.4.
sourcepub fn is_symbol(&self) -> bool
pub fn is_symbol(&self) -> bool
Returns true if this value is a symbol.
This is equivalent to typeof value === 'symbol'
in JS.
sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Returns true if this value is a function.
sourcepub fn is_array(&self) -> bool
pub fn is_array(&self) -> bool
Returns true if this value is an array. Note that it will return false for an Proxy for an array.
sourcepub fn is_big_int(&self) -> bool
pub fn is_big_int(&self) -> bool
Returns true if this value is a bigint.
This is equivalent to typeof value === 'bigint'
in JS.
sourcepub fn is_boolean(&self) -> bool
pub fn is_boolean(&self) -> bool
Returns true if this value is boolean.
This is equivalent to typeof value === 'boolean'
in JS.
sourcepub fn is_external(&self) -> bool
pub fn is_external(&self) -> bool
Returns true if this value is an External
object.
sourcepub fn is_arguments_object(&self) -> bool
pub fn is_arguments_object(&self) -> bool
Returns true if this value is an Arguments object.
sourcepub fn is_big_int_object(&self) -> bool
pub fn is_big_int_object(&self) -> bool
Returns true if this value is a BigInt object.
sourcepub fn is_boolean_object(&self) -> bool
pub fn is_boolean_object(&self) -> bool
Returns true if this value is a Boolean object.
sourcepub fn is_number_object(&self) -> bool
pub fn is_number_object(&self) -> bool
Returns true if this value is a Number object.
sourcepub fn is_string_object(&self) -> bool
pub fn is_string_object(&self) -> bool
Returns true if this value is a String object.
sourcepub fn is_symbol_object(&self) -> bool
pub fn is_symbol_object(&self) -> bool
Returns true if this value is a Symbol object.
sourcepub fn is_native_error(&self) -> bool
pub fn is_native_error(&self) -> bool
Returns true if this value is a NativeError.
sourcepub fn is_reg_exp(&self) -> bool
pub fn is_reg_exp(&self) -> bool
Returns true if this value is a RegExp.
sourcepub fn is_async_function(&self) -> bool
pub fn is_async_function(&self) -> bool
Returns true if this value is an async function.
sourcepub fn is_generator_function(&self) -> bool
pub fn is_generator_function(&self) -> bool
Returns true if this value is a Generator function.
sourcepub fn is_promise(&self) -> bool
pub fn is_promise(&self) -> bool
Returns true if this value is a Promise.
sourcepub fn is_map_iterator(&self) -> bool
pub fn is_map_iterator(&self) -> bool
Returns true if this value is a Map Iterator.
sourcepub fn is_set_iterator(&self) -> bool
pub fn is_set_iterator(&self) -> bool
Returns true if this value is a Set Iterator.
sourcepub fn is_weak_map(&self) -> bool
pub fn is_weak_map(&self) -> bool
Returns true if this value is a WeakMap.
sourcepub fn is_weak_set(&self) -> bool
pub fn is_weak_set(&self) -> bool
Returns true if this value is a WeakSet.
sourcepub fn is_array_buffer(&self) -> bool
pub fn is_array_buffer(&self) -> bool
Returns true if this value is an ArrayBuffer.
sourcepub fn is_array_buffer_view(&self) -> bool
pub fn is_array_buffer_view(&self) -> bool
Returns true if this value is an ArrayBufferView.
sourcepub fn is_typed_array(&self) -> bool
pub fn is_typed_array(&self) -> bool
Returns true if this value is one of TypedArrays.
sourcepub fn is_uint8_array(&self) -> bool
pub fn is_uint8_array(&self) -> bool
Returns true if this value is an Uint8Array.
sourcepub fn is_uint8_clamped_array(&self) -> bool
pub fn is_uint8_clamped_array(&self) -> bool
Returns true if this value is an Uint8ClampedArray.
sourcepub fn is_int8_array(&self) -> bool
pub fn is_int8_array(&self) -> bool
Returns true if this value is an Int8Array.
sourcepub fn is_uint16_array(&self) -> bool
pub fn is_uint16_array(&self) -> bool
Returns true if this value is an Uint16Array.
sourcepub fn is_int16_array(&self) -> bool
pub fn is_int16_array(&self) -> bool
Returns true if this value is an Int16Array.
sourcepub fn is_uint32_array(&self) -> bool
pub fn is_uint32_array(&self) -> bool
Returns true if this value is an Uint32Array.
sourcepub fn is_int32_array(&self) -> bool
pub fn is_int32_array(&self) -> bool
Returns true if this value is an Int32Array.
sourcepub fn is_float32_array(&self) -> bool
pub fn is_float32_array(&self) -> bool
Returns true if this value is a Float32Array.
sourcepub fn is_float64_array(&self) -> bool
pub fn is_float64_array(&self) -> bool
Returns true if this value is a Float64Array.
sourcepub fn is_big_int64_array(&self) -> bool
pub fn is_big_int64_array(&self) -> bool
Returns true if this value is a BigInt64Array.
sourcepub fn is_big_uint64_array(&self) -> bool
pub fn is_big_uint64_array(&self) -> bool
Returns true if this value is a BigUint64Array.
sourcepub fn is_data_view(&self) -> bool
pub fn is_data_view(&self) -> bool
Returns true if this value is a DataView.
Returns true if this value is a SharedArrayBuffer. This is an experimental feature.
sourcepub fn is_wasm_memory_object(&self) -> bool
pub fn is_wasm_memory_object(&self) -> bool
Returns true if this value is a WasmMemoryObject.
sourcepub fn is_wasm_module_object(&self) -> bool
pub fn is_wasm_module_object(&self) -> bool
Returns true if this value is a WasmModuleObject.
sourcepub fn is_module_namespace_object(&self) -> bool
pub fn is_module_namespace_object(&self) -> bool
Returns true if the value is a Module Namespace Object.
pub fn strict_equals(&self, that: Local<'_, Value>) -> bool
pub fn same_value(&self, that: Local<'_, Value>) -> bool
sourcepub fn same_value_zero(&self, that: Local<'_, Value>) -> bool
pub fn same_value_zero(&self, that: Local<'_, Value>) -> bool
Implements the the abstract operation SameValueZero
, which is defined in
ECMA-262 6th edition § 7.2.10
(http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero).
This operation is used to compare values for the purpose of insertion into
a Set
, or determining whether Map
keys are equivalent. Its semantics
are almost the same as strict_equals()
and same_value()
, with the
following important distinctions:
- It considers
NaN
equal toNaN
(unlikestrict_equals()
). - It considers
-0
equal to0
(unlikesame_value()
).
pub fn to_big_int<'s>(
&self,
scope: &mut HandleScope<'s>
) -> Option<Local<'s, BigInt>>
pub fn to_number<'s>(
&self,
scope: &mut HandleScope<'s>
) -> Option<Local<'s, Number>>
pub fn to_string<'s>(
&self,
scope: &mut HandleScope<'s>
) -> Option<Local<'s, String>>
sourcepub fn to_rust_string_lossy<'s>(&self, scope: &mut HandleScope<'s>) -> String
pub fn to_rust_string_lossy<'s>(&self, scope: &mut HandleScope<'s>) -> String
Convenience function not present in the original V8 API.
pub fn to_detail_string<'s>(
&self,
scope: &mut HandleScope<'s>
) -> Option<Local<'s, String>>
pub fn to_object<'s>(
&self,
scope: &mut HandleScope<'s>
) -> Option<Local<'s, Object>>
pub fn to_integer<'s>(
&self,
scope: &mut HandleScope<'s>
) -> Option<Local<'s, Integer>>
pub fn to_uint32<'s>(
&self,
scope: &mut HandleScope<'s>
) -> Option<Local<'s, Uint32>>
pub fn to_int32<'s>(
&self,
scope: &mut HandleScope<'s>
) -> Option<Local<'s, Int32>>
sourcepub fn to_boolean<'s>(
&self,
scope: &mut HandleScope<'s, ()>
) -> Local<'s, Boolean>
pub fn to_boolean<'s>(
&self,
scope: &mut HandleScope<'s, ()>
) -> Local<'s, Boolean>
Perform the equivalent of Boolean(value) in JS. This can never fail.
pub fn instance_of<'s>(
&self,
scope: &mut HandleScope<'s>,
object: Local<'_, Object>
) -> Option<bool>
pub fn number_value<'s>(&self, scope: &mut HandleScope<'s>) -> Option<f64>
pub fn integer_value<'s>(&self, scope: &mut HandleScope<'s>) -> Option<i64>
pub fn uint32_value<'s>(&self, scope: &mut HandleScope<'s>) -> Option<u32>
pub fn int32_value<'s>(&self, scope: &mut HandleScope<'s>) -> Option<i32>
pub fn boolean_value<'s>(&self, scope: &mut HandleScope<'s, ()>) -> bool
sourcepub fn get_hash(&self) -> NonZeroI32
pub fn get_hash(&self) -> NonZeroI32
Returns the V8 hash value for this value. The current implementation uses a hidden property to store the identity hash on some object types.
The return value will never be 0. Also, it is not guaranteed to be unique.
Methods from Deref<Target = Data>§
sourcepub fn is_big_int(&self) -> bool
pub fn is_big_int(&self) -> bool
Returns true if this data is a BigInt
.
sourcepub fn is_boolean(&self) -> bool
pub fn is_boolean(&self) -> bool
Returns true if this data is a Boolean
.
sourcepub fn is_context(&self) -> bool
pub fn is_context(&self) -> bool
Returns true if this data is a Context
.
sourcepub fn is_fixed_array(&self) -> bool
pub fn is_fixed_array(&self) -> bool
Returns true if this data is a FixedArray
.
sourcepub fn is_function_template(&self) -> bool
pub fn is_function_template(&self) -> bool
Returns true if this data is a FunctionTemplate
.
sourcepub fn is_module_request(&self) -> bool
pub fn is_module_request(&self) -> bool
Returns true if this data is a ModuleRequest
.
sourcepub fn is_object_template(&self) -> bool
pub fn is_object_template(&self) -> bool
Returns true if this data is a ObjectTemplate
.
sourcepub fn is_primitive(&self) -> bool
pub fn is_primitive(&self) -> bool
Returns true if this data is a Primitive
.
sourcepub fn is_private(&self) -> bool
pub fn is_private(&self) -> bool
Returns true if this data is a Private
.