this post was submitted on 21 Apr 2024
66 points (97.1% liked)

Rust

6029 readers
1 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

[email protected]

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
66
submitted 7 months ago* (last edited 7 months ago) by larix to c/rust
 

This is my first project in rust, called: since. A small tool to filter logfiles or any other files with a timestamp in it, by a given timestamp.

For example:

since 1h /var/log/messages prints all lines from the last hour. since 00:00 /var/log/messages prints all lines since 00:00.

It would be nice if you could take a look at the code. What would you change, what should I change?

I’m not a professional programmer, this is just a hobby, but I want to learn as much as possible.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 22 points 7 months ago* (last edited 7 months ago) (7 children)

I took a very quick look at the code and one thing I noticed, is that you're using &String.

For a parameter in a function, you always want to use &str instead, as explained here: https://doc.rust-lang.org/book/ch04-03-slices.html#string-slices-as-parameters

I believe, it's also not a thing to return &String (nor to store it in a struct). I don't have as solid of an explanation for it, it's just not something I see much in Rust code (and in the chapter above, they do use a &str as return value, too).
Maybe someone else can weigh in on that.

The same applies for:

  • &[] rather than &Vec
  • &Path rather than &PathBuf
  • &OsStr rather than &OsString

I would also recommend using Clippy. I think, you can just run cargo clippy and it'll work.
It's a linter and will tell you lots of code style issues (like using &String as a parameter).
If you've never run it, it might spit out a lot of warnings at first, but working through them can teach you quite some things.

[–] ExperimentalGuy 2 points 7 months ago

Thanks, that was a lot of info I didn't know either. I was wondering how to use clippy...

load more comments (6 replies)