Skip to content

Commit

Permalink
add len for str
Browse files Browse the repository at this point in the history
  • Loading branch information
SwayStar123 committed Feb 24, 2025
1 parent fccc8a9 commit 3e77627
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
22 changes: 22 additions & 0 deletions sway-lib-std/src/string.sw
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,28 @@ impl String {
pub fn ptr(self) -> raw_ptr {
self.bytes.ptr()
}

/// Gets the length of the `String`.
///
/// # Returns
///
/// * [u64] - The length of the `String`.
///
/// # Examples
///
/// ```sway
/// use std::string::String;
///
/// fn foo() {
/// let string = String::new();
/// assrt(string.len() == 0);
/// let string = String::from_ascii_str("ABCDEF");
/// assert(string.len() == 6);
/// }
/// ```
pub fn len(self) -> u64 {
self.bytes.len
}
}

impl From<Bytes> for String {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -393,3 +393,21 @@ fn string_clone() {
assert(cloned_string.as_bytes().get(1).unwrap() == string.as_bytes().get(1).unwrap());
assert(cloned_string.as_bytes().get(2).unwrap() == string.as_bytes().get(2).unwrap());
}

#[test]
fn test_string_len() {
let string = String::from_ascii_str("fuel");
assert(string.len() == 4);

let string = String::new();
assert(string.len() == 0);

let string = String::from_ascii_str("ABCDEF");
assert(string.len() == 6);

let string = String::from_ascii_str("1234");
assert(string.len() == 4);

let string = String::from_ascii_str("");
assert(string.len() == 0);
}

0 comments on commit 3e77627

Please sign in to comment.