pijul nest
guest [sign in]

feat: use rustyline for the repl

[?]
Mar 9, 2021, 9:49 PM
PUWH566OS7GW6KXTNQEH7VXRGYABORD7MASW5I7X3ANPLQW4MO4QC

Dependencies

Change contents

  • replacement in src/main.rs at line 1
    [2.17][2.18:105]()
    use std::io::{stdin, stdout, Write};
    use nom::{IResult, character::complete::one_of};
    [2.17]
    [2.105]
    use nom::{
    character::complete::{digit1, one_of},
    IResult,
    };
    use rustyline::{
    error::ReadlineError::{Eof, Interrupted},
    Editor,
    };
  • replacement in src/main.rs at line 11
    [2.154][2.154:159]()
    [2.154]
    [2.159]
    digit1(input)
  • replacement in src/main.rs at line 19
    [2.276][2.276:478]()
    loop {
    print!("ferencz> ");
    stdout().flush()?;
    let mut buffer: String = String::new();
    stdin().read_line(&mut buffer)?;
    println!("Now you are a {}", buffer);
    [2.276]
    [2.478]
    let mut rl = Editor::<()>::new();
    if let Err(_) = rl.load_history("history.txt") {
    println!("Previous history was not loaded.");
    }
    Ok(loop {
    let readline = rl.readline("Ferencz> ");
    match readline {
    Ok(line) => {
    rl.add_history_entry(&line);
    println!("Line: {}", line);
    }
    Err(Interrupted) => {
    println!("CTRL-C");
    break;
    }
    Err(Eof) => {
    println!("CTRL-D");
    break;
    }
    Err(err) => {
    println!("Error: {:}", err);
    break;
    }
    }
    })
    }
    #[cfg(test)]
    mod test {
    use super::*;
    #[test]
    fn test() {
    assert_eq!(number("23"), Ok(("", "23")));
  • replacement in Cargo.toml at line 10
    [2.725][2.725:734]()
    nom = "6"
    [2.725]
    rustyline = "8"
  • edit in Cargo.lock at line 28
    [2.1483]
    [2.1483]
    name = "cc"
    version = "1.0.67"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
    [[package]]
  • edit in Cargo.lock at line 38
    [2.1660]
    [2.1660]
    [[package]]
    name = "dirs-next"
    version = "2.0.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
    dependencies = [
    "cfg-if",
    "dirs-sys-next",
    ]
  • edit in Cargo.lock at line 50
    [2.1673]
    [2.1673]
    name = "dirs-sys-next"
    version = "0.1.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
    dependencies = [
    "libc",
    "redox_users",
    "winapi",
    ]
    [[package]]
    name = "endian-type"
    version = "0.1.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
    [[package]]
  • edit in Cargo.lock at line 71
    [2.1733]
    [2.1733]
    "rustyline",
  • edit in Cargo.lock at line 75
    [2.1748]
    [2.1748]
    name = "fs2"
    version = "0.4.3"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
    dependencies = [
    "libc",
    "winapi",
    ]
    [[package]]
  • edit in Cargo.lock at line 91
    [2.1937]
    [2.1937]
    name = "getrandom"
    version = "0.2.2"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
    dependencies = [
    "cfg-if",
    "libc",
    "wasi",
    ]
    [[package]]
  • edit in Cargo.lock at line 115
    [2.2219]
    [2.2219]
    name = "libc"
    version = "0.2.88"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "03b07a082330a35e43f63177cc01689da34fbffa0105e1246cf0311472cac73a"
    [[package]]
    name = "log"
    version = "0.4.14"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
    dependencies = [
    "cfg-if",
    ]
    [[package]]
  • edit in Cargo.lock at line 134
    [2.2396]
    [2.2396]
    [[package]]
    name = "nibble_vec"
    version = "0.1.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43"
    dependencies = [
    "smallvec",
    ]
  • edit in Cargo.lock at line 145
    [2.2409]
    [2.2409]
    name = "nix"
    version = "0.20.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
    dependencies = [
    "bitflags",
    "cc",
    "cfg-if",
    "libc",
    ]
    [[package]]
  • edit in Cargo.lock at line 174
    [2.2859]
    [2.2859]
    [[package]]
    name = "radix_trie"
    version = "0.2.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd"
    dependencies = [
    "endian-type",
    "nibble_vec",
    ]
  • edit in Cargo.lock at line 186
    [2.2872]
    [2.2872]
    name = "redox_syscall"
    version = "0.2.5"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
    dependencies = [
    "bitflags",
    ]
    [[package]]
    name = "redox_users"
    version = "0.4.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
    dependencies = [
    "getrandom",
    "redox_syscall",
    ]
    [[package]]
    name = "rustyline"
    version = "8.0.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "b9e1b597fcd1eeb1d6b25b493538e5aa19629eb08932184b85fef931ba87e893"
    dependencies = [
    "bitflags",
    "cfg-if",
    "dirs-next",
    "fs2",
    "libc",
    "log",
    "memchr",
    "nix",
    "radix_trie",
    "scopeguard",
    "smallvec",
    "unicode-segmentation",
    "unicode-width",
    "utf8parse",
    "winapi",
    ]
    [[package]]
  • edit in Cargo.lock at line 232
    [2.3046]
    [2.3046]
    [[package]]
    name = "scopeguard"
    version = "1.1.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
    [[package]]
    name = "smallvec"
    version = "1.6.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
  • edit in Cargo.lock at line 258
    [2.3447]
    [2.3447]
    name = "unicode-segmentation"
    version = "1.7.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796"
    [[package]]
    name = "unicode-width"
    version = "0.1.8"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
    [[package]]
    name = "utf8parse"
    version = "0.2.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372"
    [[package]]
  • edit in Cargo.lock at line 280
    [2.3631]
    [2.3631]
    [[package]]
    name = "wasi"
    version = "0.10.2+wasi-snapshot-preview1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
  • edit in Cargo.lock at line 288
    [2.3644]
    [2.3644]
    name = "winapi"
    version = "0.3.9"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
    dependencies = [
    "winapi-i686-pc-windows-gnu",
    "winapi-x86_64-pc-windows-gnu",
    ]
    [[package]]
    name = "winapi-i686-pc-windows-gnu"
    version = "0.4.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
    [[package]]
    name = "winapi-x86_64-pc-windows-gnu"
    version = "0.4.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
    [[package]]