Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust Boilerplate

MacOS boilerplate for Rust.

Adjustment to work properly on GNU/Linux distros

Globally substitute the ascii code '127' with the macro 'KEY_BACKSPACE'.

Macros

compr!

A list comprehension macro.

vec_of_strings!

A vector initialisation macro.

Terminal helpers

input(prompt: &str) -> String

Prompts the user for input and returns it as a string.

cls()

Clears the terminal window on some terminal emulators.

e.g. does not work with the Intellij terminal.

type_of<T>(_: &T) -> String

Returns the type of variable T.

unix_shell(x: &str)

Executes slices as unix shell commands.

  • Some shell commands will not work on all terminal emulators. (e.g. "clear" in the Intellij terminal).

  • Compound shell commands will not work properly (e.g. commands using the "&&" operator).

Random numbers

seed()

Seeds the pseudo-random number generator with unix time.

pseudo(x: i32, y: i32) -> i32

Generates a pseudo-random number between x and y.

Strings and chars

remove_null_strings(v: Vec<String>) -> Vec<String>

Removes all empty strings from a vector of strings.

nth_char(x: &str, n: usize) -> char

Returns the nth char (zero indexed) from a slice.

is_digits(x: &str) -> bool

Checks if a slice consists only of digits.

is_i32(x: &str) -> bool

Checks if a slice represents an i32 integer.

is_f64(x: &str) -> bool

Checks if a slice represents an f64 float.

is_number(x: &str) -> bool 

Like the "is_f64" function, but with additional format restrictions.

to_i32(x: &str) -> i32

Converts a slice to an i32 integer.

to_f64(x: &str) -> f64

Converts a slice to an f64 float.

char_count(x: &str) -> usize

Counts the number of chars in a slice.

slice_count(x: &str, y: char) -> usize

Counts the number of substrings in a slice, as delimited by a given char.

word_count(x: &str) -> usize

Counts the number of words in a slice.

line_count(x: &str) -> usize

Counts the number of lines in a slice.

nth_slice(x: &str, y: usize, z: char) -> String

Returns the nth slice (zero indexed) from a larger slice, as delimited by a given char.

nth_word(x: &str, y: usize) -> String

Returns the nth word (zero indexed) from a slice.

nth_line(x: &str, y: usize) -> String

Returns the nth line (zero indexed) from a slice.

File IO

write_to_file(path: &str, data: &str)

Writes data to a file.

file_exists(path: &str) -> bool

Returns true if the file path exists.

append_to_file(path: &str, data: &str)

Appends data to a file.

delete_file(path: &str)

Deletes the file on the named path.

read_from_file(path: &str) -> String

Reads data from a file into a string.

Virtual terminal

  • These functions will not work on Windows.

  • Only ASCII characters will be displayed correctly in the virtual terminal.

  • These functions will not work properly on some terminal emulators (e.g. the IntelliJ terminal).

vt_open()

Opens the virtual terminal.

vt_close(x: &str)

Displays a message, then closes the virtual terminal on the next user key press.

vt_cursor_off()

Hides the virtual cursor.

vt_cursor_on()

Displays the virtual cursor.

vt_rows() -> i32

Returns the number of rows in the virtual terminal.

vt_columns() -> i32

Returns the number of columns in the virtual terminal.

vt_cls()

Clears the virtual terminal.

vt_key_i32() -> i32

Obtains an i32 integer from a virtual terminal key press.

vt_input(x: i32) -> String

Obtains user input as a string with no more than x chars.

vt_put_slice(x: &str)

Displays a slice in the virtual terminal.

vt_render_menu(menu:&mut Vec<String>, size:usize, count:usize)

A helper function called by vt_menu.

vt_menu(menu:&mut Vec<String>) -> usize

Returns a usize integer based on the user's selection from a menu.

vt_render_prompt(prompt:&str, buffer:&mut String, pos:usize)

A helper function called by vt_edit_prompt.

vt_edit_prompt(prompt:&str, buffer:&mut String, max:usize) -> String

Displays a prompt to the user with an existing buffer, which can be edited to return a new buffer.

About

MacOS boilerplate for Rust.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages