diff --git a/README.md b/README.md index a0929de..5d4d4de 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Separating out the letters and words: > ] > ] -## Usage +## Library usage To use the library, just import the relevant functions, and run it like this: @@ -52,9 +52,46 @@ assert_eq!(decoded, "i love cats"); You can use the library to encode anything up to base 16 - for details, see the [docs](https://docs.rs/cat2text/latest/cat2text/) -### Binary usage +## Binary usage -TODO +```yaml +A port of Cat2Text to Rust, with extra functionality, better documentation, and support for using it as a library as well. + +Usage: cat2text <COMMAND> + +Commands: + generate-bash-completions Generate bash completions + generate-zsh-completions Generate zsh completions + generate-fish-completions Generate fish completions + generate-powershell-completions Generate PowerShell completions, + encode Encodes text/data to mrow~ + decode Decodes mrow~ to text/data + benchmark + help Print this message or the help of the given subcommand(s) + +Options: + -h, --help Print help + -V, --version Print version +``` + +For example, `cat2text encode 'i love cats'` to encode `i love cats` in text mode using the default of base 4. + +### Encode/decode arguments + +- `-b`, `--base` (integer): What base to encode/decode using - up to base 16 +- `--bytes` (flag): Whether to use byte encoding or text encoding +- `-h`, `--help`: Print help + +### Benchmark arguments + +- `-b`, `--base` (integer): What base to encode/decode using - up to base 16 +- `-i`, `--iterations`: How many iterations to run each benchmark for +- `--bytes` (flag): Whether to use byte encoding or text encoding +- `-h`, `--help`: Print help + +### Shell completions + +To generate shell completions, you can run `cat2text generate-$(basename $SHELL)-completions | source` on *nix systems using bash, zsh, or fish. ## Limitations @@ -62,8 +99,6 @@ This currently only supports lowercase text in the latin alphabet, and byte arra ## TODO -- Make `core::{cat_to_num, num_to_cat}` usage consistent with each other -- Improve CLI - Add error handling - Do `AsRef` stuff - Optimize code