Rust Command Line Argument Parsing (A Better Way With Clap)

preview_player
Показать описание
A quick tutorial on a better way to parse command line arguments in Rust, using Clap.

00:00 Introduction
00:39 Without Clap
01:10 Clap Overview
01:36 Parser
02:40 Testing A Simpler Parser
02:48 A More Complex Parser
04:47 Testing A Parser With Subcommands
05:11 Reading Values From The Parser

---
Stuff I use to make these videos - I absolutely love all of these products. Using these links is an easy way to support the channel, thank you so much if you do so!!!

Рекомендации по теме
Комментарии
Автор

Great tutorial,
One minor thing it's that you should specify that at the toml file you need to specify the derive feature to be able to use it:
[dependencies]
clap = { version = "3.2.8", features = ["derive"] }

barlingo
Автор

What perfect timing. I've been working on a CLI application and basing my argument parsing off one of the projects in the rust book. This looks much nicer to work with, even if I don't need nested arguments!

raediantz
Автор

Excellent - thank you! I couldn't for the life of me figure out how to implement subcommands using the derive framework, and the builder method (the ony example I could find) produces code I find dense and hard to read. Perfect.

richardlyon
Автор

This was an amazing video, short sweet and to the point. Very informative as well. I would say for future reference, you should probably show the set up of the project, even if it's brief. For example, someone really new to rust might not know that you actually have to add "features = ["derive"]" to their cargo.toml to work correctly. Other than that, great video!

cjl
Автор

Thxs for this explanation, it clarified me a lot how to define a CLI in rust. I would like to know how we can have bi-directional communication with the rust app and the command line. Could you please do an example of stdin / stdout with rust?

webblocksapp
Автор

The sped up typing looks really satisfying, though I bet it was alot of work to do in video editing

Cookiekeks
Автор

This tutorial is a gem in the dust! I love how you are the one who actually made a useful tutorial! Thank you!

oglothenerd
Автор

A crate "clap" for a language where the mascot is a crab is hilarious LOL

schlopping
Автор

I have a question: why create `struct UserCommand`? why not just create an make UserCommand as an enum. That extra stuct then enum step seems unnecessary. Please let me know your thoughts

ashutosh.sharma
Автор

Greate tutorial.

For clap - can you elaborate on when to use the derive mechanism and when to use app creation?

biocuts
Автор

Great tutorial & crate. Thanks for explanations!

fromgodd
Автор

How do you allow for empty values? I want to use a single letter flag set to true when present and false when absent, but also allow for -z true and -z false

DavidAlsh
Автор

Any way to make multiple names for the same command, like a semantics thing? say i wanted to create a file and wanted to accept if the command was either 'create' or 'touch'. maybe not important but would like to do it for fun or personal preference..

beholdthegoober
Автор

Great tutorial. Could you please share the link to the code repository :)

adeoyeadefemio.
Автор

Hi, thanks for this content. Really really helpful for me.

I've been following your implementation of the Rustflix project and I'd like to serialize to JSON the values of `CreateView` or `UpdateVideo` structs (just to mention an example). I have tried several ways but have had no luck. Any hint?

Thanks in advance :)

diegofernandorojas
Автор

Also, would be good if you can provide at least a Github gist of your codes lol, that should be basic.

guvp
Автор

How to get help menu if no argument is passed

mrlectus
Автор

This was hard to follow, as you always scroll away, even if there is no need to.
Otherwise solid content.

iuiz
Автор

The tutorial is great and helpful. But this American habit /accent to raise the voice at the end of a sentence to make it sound like a question is annoying. This sounds so confusing for a non-english speaker. You have to listen twice to understand the sentences.

alexandernagel