Merge pull request #625 from ltabis/main

Empty for Arrays
This commit is contained in:
Stephen Chung 2022-08-24 20:59:53 +08:00 committed by GitHub
commit 84be579c3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 57 additions and 1 deletions

View File

@ -3047,6 +3047,9 @@ fn keys(map: Map) -> Array;
/// Number of elements in the array. /// Number of elements in the array.
fn len(array: Array) -> int; fn len(array: Array) -> int;
/// Return true if the array is empty.
fn is_empty(array: Array) -> bool;
/// Return the length of the BLOB. /// Return the length of the BLOB.
/// ///
/// # Example /// # Example
@ -3060,9 +3063,15 @@ fn len(array: Array) -> int;
/// ``` /// ```
fn len(blob: Blob) -> int; fn len(blob: Blob) -> int;
/// Return true if the blob is empty.
fn is_empty(blob: Blob) -> bool;
/// Return the number of properties in the object map. /// Return the number of properties in the object map.
fn len(map: Map) -> int; fn len(map: Map) -> int;
/// Return true if the map is empty.
fn is_empty(map: Map) -> bool;
/// Return the length of the string, in number of characters. /// Return the length of the string, in number of characters.
/// ///
/// # Example /// # Example
@ -3074,6 +3083,9 @@ fn len(map: Map) -> int;
/// ``` /// ```
fn len(string: String) -> int; fn len(string: String) -> int;
/// Return true if the string is empty.
fn is_empty(string: String) -> bool;
/// Return the natural log of the decimal number. /// Return the natural log of the decimal number.
fn ln(x: Decimal) -> Decimal; fn ln(x: Decimal) -> Decimal;

View File

@ -1973,6 +1973,9 @@ fn get is_zero(x: u8) -> bool;
/// Number of elements in the array. /// Number of elements in the array.
fn get len(array: Array) -> int; fn get len(array: Array) -> int;
/// Return true if the array is empty.
fn get empty(array: Array) -> bool;
/// Return the length of the BLOB. /// Return the length of the BLOB.
/// ///
/// # Example /// # Example
@ -2529,6 +2532,9 @@ fn keys(map: Map) -> Array;
/// Number of elements in the array. /// Number of elements in the array.
fn len(array: Array) -> int; fn len(array: Array) -> int;
/// Return true if the array is empty.
fn is_empty(array: Array) -> bool;
/// Return the length of the BLOB. /// Return the length of the BLOB.
/// ///
/// # Example /// # Example
@ -2542,9 +2548,15 @@ fn len(array: Array) -> int;
/// ``` /// ```
fn len(blob: Blob) -> int; fn len(blob: Blob) -> int;
/// Return true if the blob is empty.
fn is_empty(blob: Blob) -> bool;
/// Return the number of properties in the object map. /// Return the number of properties in the object map.
fn len(map: Map) -> int; fn len(map: Map) -> int;
/// Return true if the map is empty.
fn is_empty(map: Map) -> bool;
/// Return the length of the string, in number of characters. /// Return the length of the string, in number of characters.
/// ///
/// # Example /// # Example
@ -2556,6 +2568,9 @@ fn len(map: Map) -> int;
/// ``` /// ```
fn len(string: String) -> int; fn len(string: String) -> int;
/// Return true if the string is empty.
fn is_empty(string: String) -> bool;
/// Return the natural log of the decimal number. /// Return the natural log of the decimal number.
fn ln(x: Decimal) -> Decimal; fn ln(x: Decimal) -> Decimal;

View File

@ -30,6 +30,11 @@ pub mod array_functions {
pub fn len(array: &mut Array) -> INT { pub fn len(array: &mut Array) -> INT {
array.len() as INT array.len() as INT
} }
/// Return true if the array is empty.
#[rhai_fn(name = "is_empty", get = "is_empty", pure)]
pub fn is_empty(array: &mut Array) -> bool {
array.len() == 0
}
/// Get a copy of the element at the `index` position in the array. /// Get a copy of the element at the `index` position in the array.
/// ///
/// * If `index` < 0, position counts from the end of the array (`-1` is the last element). /// * If `index` < 0, position counts from the end of the array (`-1` is the last element).

View File

@ -140,6 +140,11 @@ pub mod blob_functions {
pub fn len(blob: &mut Blob) -> INT { pub fn len(blob: &mut Blob) -> INT {
blob.len() as INT blob.len() as INT
} }
/// Return true if the blob is empty.
#[rhai_fn(name = "is_empty", get = "is_empty", pure)]
pub fn is_empty(blob: &mut Blob) -> bool {
blob.len() == 0
}
/// Get the byte value at the `index` position in the BLOB. /// Get the byte value at the `index` position in the BLOB.
/// ///
/// * If `index` < 0, position counts from the end of the BLOB (`-1` is the last element). /// * If `index` < 0, position counts from the end of the BLOB (`-1` is the last element).

View File

@ -666,6 +666,11 @@ mod range_functions {
let _ = range; let _ = range;
true true
} }
/// Returns true if the range contains no items.
#[rhai_fn(get = "is_empty", name = "is_empty", pure)]
pub fn is_empty_exclusive(range: &mut ExclusiveRange) -> bool {
range.is_empty()
}
/// Return the start of the inclusive range. /// Return the start of the inclusive range.
#[rhai_fn(get = "start", name = "start", pure)] #[rhai_fn(get = "start", name = "start", pure)]
pub fn start_inclusive(range: &mut InclusiveRange) -> INT { pub fn start_inclusive(range: &mut InclusiveRange) -> INT {
@ -688,4 +693,9 @@ mod range_functions {
let _ = range; let _ = range;
false false
} }
/// Returns true if the range contains no items.
#[rhai_fn(get = "is_empty", name = "is_empty", pure)]
pub fn is_empty_inclusive(range: &mut InclusiveRange) -> bool {
range.is_empty()
}
} }

View File

@ -25,7 +25,11 @@ mod map_functions {
pub fn len(map: &mut Map) -> INT { pub fn len(map: &mut Map) -> INT {
map.len() as INT map.len() as INT
} }
/// Return true if the map is empty.
#[rhai_fn(name = "is_empty", get = "is_empty", pure)]
pub fn is_empty(map: &mut Map) -> bool {
map.len() == 0
}
/// Get the value of the `property` in the object map and return a copy. /// Get the value of the `property` in the object map and return a copy.
/// ///
/// If `property` does not exist in the object map, `()` is returned. /// If `property` does not exist in the object map, `()` is returned.

View File

@ -163,6 +163,11 @@ mod string_functions {
string.chars().count() as INT string.chars().count() as INT
} }
} }
/// Return true if the string is empty.
#[rhai_fn(name = "is_empty", get = "is_empty")]
pub fn is_empty(string: &str) -> bool {
string.len() == 0
}
/// Return the length of the string, in number of bytes used to store it in UTF-8 encoding. /// Return the length of the string, in number of bytes used to store it in UTF-8 encoding.
/// ///
/// # Example /// # Example