{"id":664,"date":"2026-01-14T20:09:41","date_gmt":"2026-01-14T20:09:41","guid":{"rendered":"https:\/\/camilo.matajira.com\/?p=664"},"modified":"2026-01-15T20:08:55","modified_gmt":"2026-01-15T20:08:55","slug":"my-word-count-version-in-rust","status":"publish","type":"post","link":"https:\/\/camilo.matajira.com\/?p=664","title":{"rendered":"My &#8216;word count&#8217; version in Rust"},"content":{"rendered":"\n<p>This is my first small program in Rust. The idea was to implement a version of Linux&#8217; wc command in Rust. Below is the code:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>use std::io::Read;\nuse clap::Parser;\nuse std::fs;\n\n\/\/\/ Example: Options and flags\n#&#91;derive(Parser)&#93;\nstruct Cli {\n    \/\/\/ Count words (-w, --words)\n    #&#91;clap(short, long, action)&#93;\n    words: bool,\n    \/\/\/ Count lines (-l, --lines)\n    #&#91;clap(short, long, action)&#93;\n    lines: bool,\n    \/\/\/ Count chars (-c, --chars)\n    #&#91;clap(short, long, action)&#93;\n    chars: bool,\n    \/\/\/ input_files, optional positional\n    input_files: Option&lt;Vec&lt;String>>,\n}\n\nfn main() {\n    let cli = Cli::parse();\n\n    let mut buffer = String::new();\n    match cli.input_files {\n        Some(ref input_files) => {\n            for i in input_files{\n                let buffer_try = fs::read_to_string(i);\n                match buffer_try {\n                    Ok(buffer) => process_input(&amp;cli, &amp;buffer, &amp;i),\n                    Err(e) => {\n                        match e.kind() {\n                            std::io::ErrorKind::IsADirectory => println!(\"wc: {}: Is a directory\", i),\n                            _ => println!(\"Error: {} {}\", i, e),\n                        }\n                    }\n                }\n            }\n        }\n        None => {\n            std::io::stdin().read_to_string(&amp;mut buffer).expect(\"paila\");\n            process_input(&amp;cli, &amp;buffer, \"\");\n        }\n    }\n}\nfn process_input(cli_args: &amp;Cli, buffer: &amp;String, filename: &amp;str) {\n    if !cli_args.words &amp;&amp; !cli_args.lines &amp;&amp; !cli_args.chars{\n        let num_lines = count_lines(buffer);\n        let num_words = count_words(buffer);\n        let num_characters = count_characters(buffer);\n        println!(\"  {:>5} {:>5} {:>5} {}\", num_lines, num_words, num_characters, filename);\n        return\n    }\n    let mut result = String::from(\" \");\n    if cli_args.words { \n        let num_lines = count_lines(buffer);\n        result += &amp;format!(\"{:>5} \", num_lines);\n    }\n    if cli_args.lines {\n        let num_words = count_words(buffer);\n        result += &amp;format!(\"{:>5} \", num_words);\n    }\n    if cli_args.chars {\n        let num_characters = count_characters(buffer);\n        result += &amp;format!(\"{:>5} \", num_characters);\n    }\n    result += &amp;format!(\"{} \", filename);\n    println!(\"{}\", result);\n}\n\nfn count_lines(line: &amp;String) -> usize {\n    line.matches('\\n').count()\n}\n\nfn count_words(line: &amp;String) -> usize {\n    line.split_whitespace().count()\n}\nfn count_characters(line: &amp;String) -> usize {\n    line.len()\n}\n\n#&#91;cfg(test)&#93;\nmod tests {\n    use super::*;\n\n    #&#91;test&#93;\n    fn test_count_lines() {\n        let test_1 = String::from(\"line 1\\n\");\n        assert_eq!(count_lines(&amp;test_1),1);\n        let test_2 = String::from(\"line 1\\nLine 2\\n\");\n        assert_eq!(count_lines(&amp;test_2),2);\n    }\n    #&#91;test&#93;\n    fn test_count_words() {\n        let test_1 = String::from(\"line 1\\n\");\n        assert_eq!(count_words(&amp;test_1),2);\n        let test_2 = String::from(\"line 1 camilo andres\\n\");\n        assert_eq!(count_words(&amp;test_2),4);\n    }\n    #&#91;test&#93;\n    fn test_count_characters() {\n        let test_1 = String::from(\"line 1\\n\");\n        assert_eq!(count_characters(&amp;test_1),7);\n    }\n}\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">use<\/span><span style=\"color: #F8F8F2\"> std<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #F8F8F2\">io<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Read<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">use<\/span><span style=\"color: #F8F8F2\"> clap<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Parser<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">use<\/span><span style=\"color: #F8F8F2\"> std<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #F8F8F2\">fs;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6272A4\">\/\/\/ Example: Options and flags<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">#&#91;derive(<\/span><span style=\"color: #8BE9FD; font-style: italic\">Parser<\/span><span style=\"color: #F8F8F2\">)&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">struct<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Cli<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6272A4\">    \/\/\/ Count words (-w, --words)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;clap(short, long, action)&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    words<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">bool<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6272A4\">    \/\/\/ Count lines (-l, --lines)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;clap(short, long, action)&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    lines<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">bool<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6272A4\">    \/\/\/ Count chars (-c, --chars)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;clap(short, long, action)&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    chars<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">bool<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6272A4\">    \/\/\/ input_files, optional positional<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    input_files<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Option<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Vec<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">&gt;&gt;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">main<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cli <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Cli<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">parse<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> buffer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> cli<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">input_files {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">ref<\/span><span style=\"color: #F8F8F2\"> input_files) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> input_files{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> buffer_try <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> fs<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">read_to_string<\/span><span style=\"color: #F8F8F2\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> buffer_try {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(buffer) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">process_input<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">cli, <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">buffer, <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">i),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Err<\/span><span style=\"color: #F8F8F2\">(e) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> e<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">kind<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            std<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #F8F8F2\">io<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">ErrorKind<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">IsADirectory<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">println!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;wc: {}: Is a directory&quot;<\/span><span style=\"color: #F8F8F2\">, i),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                            _ <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">println!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;Error: {} {}&quot;<\/span><span style=\"color: #F8F8F2\">, i, e),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            std<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #F8F8F2\">io<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">stdin<\/span><span style=\"color: #F8F8F2\">()<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">read_to_string<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;mut<\/span><span style=\"color: #F8F8F2\"> buffer)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">expect<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;paila&quot;<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #50FA7B\">process_input<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">cli, <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">buffer, <\/span><span style=\"color: #F1FA8C\">&quot;&quot;<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">process_input<\/span><span style=\"color: #F8F8F2\">(cli_args<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cli<\/span><span style=\"color: #F8F8F2\">, buffer<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">, filename<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #8BE9FD; font-style: italic\">str<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">!<\/span><span style=\"color: #F8F8F2\">cli_args<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">words <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">!<\/span><span style=\"color: #F8F8F2\">cli_args<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">lines <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">!<\/span><span style=\"color: #F8F8F2\">cli_args<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">chars{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> num_lines <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">count_lines<\/span><span style=\"color: #F8F8F2\">(buffer);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> num_words <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">count_words<\/span><span style=\"color: #F8F8F2\">(buffer);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> num_characters <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">count_characters<\/span><span style=\"color: #F8F8F2\">(buffer);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">println!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;  {:&gt;5} {:&gt;5} {:&gt;5} {}&quot;<\/span><span style=\"color: #F8F8F2\">, num_lines, num_words, num_characters, filename);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">return<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> result <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">from<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot; &quot;<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> cli_args<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">words { <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> num_lines <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">count_lines<\/span><span style=\"color: #F8F8F2\">(buffer);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        result <\/span><span style=\"color: #FF79C6\">+=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #50FA7B\">format!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;{:&gt;5} &quot;<\/span><span style=\"color: #F8F8F2\">, num_lines);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> cli_args<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">lines {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> num_words <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">count_words<\/span><span style=\"color: #F8F8F2\">(buffer);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        result <\/span><span style=\"color: #FF79C6\">+=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #50FA7B\">format!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;{:&gt;5} &quot;<\/span><span style=\"color: #F8F8F2\">, num_words);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> cli_args<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">chars {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> num_characters <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">count_characters<\/span><span style=\"color: #F8F8F2\">(buffer);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        result <\/span><span style=\"color: #FF79C6\">+=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #50FA7B\">format!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;{:&gt;5} &quot;<\/span><span style=\"color: #F8F8F2\">, num_characters);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    result <\/span><span style=\"color: #FF79C6\">+=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #50FA7B\">format!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;{} &quot;<\/span><span style=\"color: #F8F8F2\">, filename);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">println!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;{}&quot;<\/span><span style=\"color: #F8F8F2\">, result);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">count_lines<\/span><span style=\"color: #F8F8F2\">(line<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    line<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">matches<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&#39;<\/span><span style=\"color: #FF79C6\">\\n<\/span><span style=\"color: #F1FA8C\">&#39;<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">count<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">count_words<\/span><span style=\"color: #F8F8F2\">(line<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    line<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">split_whitespace<\/span><span style=\"color: #F8F8F2\">()<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">count<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">count_characters<\/span><span style=\"color: #F8F8F2\">(line<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    line<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">len<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">#&#91;cfg(test)&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">mod<\/span><span style=\"color: #F8F8F2\"> tests {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">use<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">super<\/span><span style=\"color: #FF79C6\">::*<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_count_lines<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> test_1 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">from<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;line 1<\/span><span style=\"color: #FF79C6\">\\n<\/span><span style=\"color: #F1FA8C\">&quot;<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #50FA7B\">count_lines<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">test_1),<\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> test_2 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">from<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;line 1<\/span><span style=\"color: #FF79C6\">\\n<\/span><span style=\"color: #F1FA8C\">Line 2<\/span><span style=\"color: #FF79C6\">\\n<\/span><span style=\"color: #F1FA8C\">&quot;<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #50FA7B\">count_lines<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">test_2),<\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_count_words<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> test_1 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">from<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;line 1<\/span><span style=\"color: #FF79C6\">\\n<\/span><span style=\"color: #F1FA8C\">&quot;<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #50FA7B\">count_words<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">test_1),<\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> test_2 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">from<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;line 1 camilo andres<\/span><span style=\"color: #FF79C6\">\\n<\/span><span style=\"color: #F1FA8C\">&quot;<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #50FA7B\">count_words<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">test_2),<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_count_characters<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> test_1 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">from<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;line 1<\/span><span style=\"color: #FF79C6\">\\n<\/span><span style=\"color: #F1FA8C\">&quot;<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #50FA7B\">count_characters<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">test_1),<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Below is the example usage:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>cargo run .\/Cargo.* -h\nExample: Options and flags\n\nUsage: wc &#91;OPTIONS&#93; &#91;INPUT_FILES&#93;...\n\nArguments:\n  &#91;INPUT_FILES&#93;...  input_files, optional positional\n\nOptions:\n  -w, --words  Count words (-w, --words)\n  -l, --lines  Count lines (-l, --lines)\n  -c, --chars  Count chars (-c, --chars)\n  -h, --help   Print help\n  \ncargo run .\/Cargo.*\n    186   376  4899 .\/Cargo.lock\n      7    21   123 .\/Cargo.toml\n\ncargo run .\/Cargo.* -l\n   376 .\/Cargo.lock\n    21 .\/Cargo.toml\n\ncargo run .\/Cargo.* -w\n   186 .\/Cargo.lock\n     7 .\/Cargo.toml\n\ncargo run .\/Cargo.* -c\n  4899 .\/Cargo.lock\n   123 .\/Cargo.toml\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #50FA7B\">cargo<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">run<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.<\/span><span style=\"color: #BD93F9; font-style: italic\">*<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">-h<\/span><\/span>\n<span class=\"line\"><span style=\"color: #50FA7B\">Example:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">Options<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">and<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">flags<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #50FA7B\">Usage:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">wc<\/span><span style=\"color: #F8F8F2\"> &#91;OPTIONS&#93; &#91;INPUT_FILES&#93;...<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #50FA7B\">Arguments:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  &#91;INPUT_FILES&#93;<\/span><span style=\"color: #8BE9FD\">...<\/span><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #F1FA8C\">input_files,<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">optional<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">positional<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #50FA7B\">Options:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #50FA7B\">-w,<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">--words<\/span><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #F1FA8C\">Count<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">words<\/span><span style=\"color: #F8F8F2\"> (-w, <\/span><span style=\"color: #BD93F9\">--words<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #50FA7B\">-l,<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">--lines<\/span><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #F1FA8C\">Count<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">lines<\/span><span style=\"color: #F8F8F2\"> (-l, <\/span><span style=\"color: #BD93F9\">--lines<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #50FA7B\">-c,<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">--chars<\/span><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #F1FA8C\">Count<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">chars<\/span><span style=\"color: #F8F8F2\"> (-c, <\/span><span style=\"color: #BD93F9\">--chars<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #50FA7B\">-h,<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">--help<\/span><span style=\"color: #F8F8F2\">   <\/span><span style=\"color: #F1FA8C\">Print<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">help<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #50FA7B\">cargo<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">run<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.<\/span><span style=\"color: #BD93F9; font-style: italic\">*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">186<\/span><span style=\"color: #F8F8F2\">   <\/span><span style=\"color: #BD93F9\">376<\/span><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #BD93F9\">4899<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.lock<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">      <\/span><span style=\"color: #50FA7B\">7<\/span><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #BD93F9\">21<\/span><span style=\"color: #F8F8F2\">   <\/span><span style=\"color: #BD93F9\">123<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.toml<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #50FA7B\">cargo<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">run<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.<\/span><span style=\"color: #BD93F9; font-style: italic\">*<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">-l<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">   <\/span><span style=\"color: #50FA7B\">376<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.lock<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #50FA7B\">21<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.toml<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #50FA7B\">cargo<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">run<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.<\/span><span style=\"color: #BD93F9; font-style: italic\">*<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">-w<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">   <\/span><span style=\"color: #50FA7B\">186<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.lock<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">     <\/span><span style=\"color: #50FA7B\">7<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.toml<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #50FA7B\">cargo<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">run<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.<\/span><span style=\"color: #BD93F9; font-style: italic\">*<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">-c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #50FA7B\">4899<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.lock<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">   <\/span><span style=\"color: #50FA7B\">123<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F1FA8C\">.\/Cargo.toml<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>This is my first small program in Rust. The idea was to implement a version of Linux&#8217; wc command in Rust. Below is the code: Below is the example usage:<\/p>\n","protected":false},"author":1,"featured_media":665,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-664","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projects"],"_links":{"self":[{"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/posts\/664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=664"}],"version-history":[{"count":3,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/posts\/664\/revisions"}],"predecessor-version":[{"id":668,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/posts\/664\/revisions\/668"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/media\/665"}],"wp:attachment":[{"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}