Skip to content

Latest commit

 

History

History
217 lines (103 loc) · 6.93 KB

ascii.md

File metadata and controls

217 lines (103 loc) · 6.93 KB

Module 0x1::ascii

The ASCII module defines basic string and char newtypes in Move that verify that characters are valid ASCII, and that strings consist of only valid ASCII characters.

Struct String

The String struct holds a vector of bytes that all represent valid ASCII characters. Note that these ASCII characters may not all be printable. To determine if a String contains only "printable" characters you should use the all_characters_printable predicate defined in this module.

#[data_struct]
struct String has copy, drop, store

Struct Char

An ASCII character.

struct Char has copy, drop, store

Constants

An invalid ASCII character was encountered when creating an ASCII string.

const EINVALID_ASCII_CHARACTER: u64 = 65536;

Function char

Convert a byte into a Char that is checked to make sure it is valid ASCII.

public fun char(byte: u8): ascii::Char

Function string

Convert a vector of bytes bytes into an String. Aborts if bytes contains non-ASCII characters.

public fun string(bytes: vector<u8>): ascii::String

Function try_string

Convert a vector of bytes bytes into an String. Returns Some(<ascii_string>) if the bytes contains all valid ASCII characters. Otherwise returns None.

Function all_characters_printable

Returns true if all characters in string are printable characters Returns false otherwise. Not all Strings are printable strings.

Function push_char

public fun push_char(string: &mut ascii::String, char: ascii::Char)

Function pop_char

Function length

public fun length(string: &ascii::String): u64

Function as_bytes

Get the inner bytes of the string as a reference

Function into_bytes

Unpack the string to get its backing bytes

Function byte

Unpack the char into its underlying byte.

public fun byte(char: ascii::Char): u8

Function is_valid_char

Returns true if b is a valid ASCII character. Returns false otherwise.

public fun is_valid_char(b: u8): bool

Function is_printable_char

Returns true if byte is an printable ASCII character. Returns false otherwise.

public fun is_printable_char(byte: u8): bool