summaryrefslogtreecommitdiffstats
path: root/vendor/comma/README.md
blob: a6d9f5f60e889380339f1fd44606b6ac680e854e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# comma

[![Crates.io](https://img.shields.io/crates/v/comma?style=flat-square)](https://crates.io/crates/comma)
[![docs.rs](https://docs.rs/comma/badge.svg)](https://docs.rs/comma)
[![Build Status](https://travis-ci.org/emctague/comma.svg?branch=master)](https://travis-ci.org/emctague/comma)

`comma` splits shell-style commands, e.g. `sendmsg joe "I say \"hi\" to you!"`, into a list of individual tokens.
It correctly handles unicode characters, escape sequences, and single- or double-quoted strings.

## Cargo

```toml
[dependencies]
comma = "1.0.0"
```

## Usage

```rust
use comma::parse_command;

fn main () {
    let parsed = parse_command("sendmsg joe \"I say \\\"hi\\\" to you!\" 'but only\\ntoday'").unwrap();
    println!("Result: {:#?}", parsed); // Result: [ "sendmsg", "joe", "I say \"hi\" to you!", "but only\ntoday" ]
}
```