# Full2Half
A simple project to allow conversion of full-width characters to half-width characters and vice versa, which supplies a library and CLI binary.
## Command-Line Interface
The binary has three main functions.
#### Convert a string directly:
```bash
full2half "Hello World!"
```
#### Do the conversion on a file by overwriting or copying:
This will overwrite the file.
```bash
full2half -f "file_to_convert.txt"
```
This will create a copy with this naming scheme:
"[File Name] ([Duplicate Counter])[ext]"
```bash
full2half -c -f "file_to_convert.txt"
```
#### Customize Behaviour:
If needed you can also ignore specific characters like so:
```bash
full2half -i "e" "!" -- "Hello World!"
```
Or ignore specific character sets by using the specified flags, get more info by running:
```bash
full2half -h
```
## Installation
To use this library in your Rust project, simply add the following line to your Cargo.toml file:
```toml
[dependencies]
full2half = { version = "0.1.0" }
```
To install the `full2half` binary locally, simply run the following command:
```bash
cargo install full2half
```
The binary will be downloaded from [crates.io](https://crates.io/) and compiled by cargo. After installation you can simply use the `full2half` binary from the command line.
## Usage
Simply import the `CharacterWidth` trait and you are ready to go:
```rust
use full2half::CharacterWidth;
let full_width_string = "Hello World!";
let half_width_string = "Hello World!";
println!("{}", full_width_string.to_half_width());
println!("{}", half_width_string.to_full_width());
```
See more details in the docs.
## Character References
[Wikipedia](https://en.wikipedia.org/wiki/Halfwidth_and_Fullwidth_Forms_(Unicode_block))
[Unicode](https://www.unicode.org/charts/PDF/UFF00.pdf)
## Contribution
If you find any missing characters, conversion errors, bugs or want to extend functionality feel free to do a merge request.
## License
This library is licensed under the MIT license. See the [LICENSE](./LICENSE) file for details.