Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change FinalError builder pattern to take and give ownership of self #97

Merged
merged 4 commits into from
Oct 15, 2021

Conversation

SpyrosRoum
Copy link
Contributor

This means that when you do let e = FinalError::with_title("Foo").detail("Blah");, e will be of type FinalError instead of &mut FinalError, thus you don't have to call clone() on it

This means that when you do `let e = FinalError::with_title("Foo").detail("Blah");`, `e` will be of type `FinalError` instead of `&mut FinalError`, thus you don't have to call `clone()` on it
@marcospb19
Copy link
Member

That's convenient, I had a messy implementation of it at 493f42d, but closed the PR temporarily and forgot to make it again.

src/error.rs Outdated
Comment on lines 106 to 123
Error::MissingArgumentsForCompression => FinalError::with_title("Could not compress")
.detail("The compress command requires at least 2 arguments")
.hint("You must provide:")
.hint(" - At least one input argument.")
.hint(" - The output argument.")
.hint("")
.hint("Example: `ouch compress image.png img.zip`"),
Error::MissingArgumentsForDecompression => FinalError::with_title("Could not decompress")
.detail("The compress command requires at least one argument")
.hint("You must provide:")
.hint(" - At least one input argument.")
.hint("")
.hint("Example: `ouch decompress imgs.tar.gz`"),
Error::InternalError => FinalError::with_title("InternalError :(")
.detail("This should not have happened")
.detail("It's probably our fault")
.detail("Please help us improve by reporting the issue at:")
.detail(format!(" {}https://github.com/vrmiguel/ouch/issues ", cyan())),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same thing here that happened to me previously, the formatting is terrible because we dropped the unstable rustfmt features. (it's crazy that this rustfmt feature should be stable already, it's been like 30 months).

Could you add this back 588359e and run cargo fmt on the project? I personally hate how multiline braces stay squished together without this config.

In rustfmt.toml:

unstable_features = true
force_multiline_blocks = true

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When running cargo fmt I get

Warning: can't set `force_multiline_blocks = true`, unstable features are only available in nightly channel.
Warning: can't set `unstable_features = true`, unstable features are only available in nightly channel.

Do we need to enable rust nightly just for this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that's what makes the warnings go away, but is it worth it using nightly just for rust fmt?

Copy link
Member

@marcospb19 marcospb19 Oct 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's ok to use nightly but it's probably because I always use it anyways, what do you think?

I don't know why rust-lang/rustfmt/issues/3374 is not stable yet.

I have been using nightly mainly because of rustfmt, eventually I experience with some feature.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will probably be fine, we are not using any unstable features anyway so I don't think anything will break.
And yeah, it looks like this should be stable, you can probably open a pr yourself for it. I did it once for a method I needed and it was fairly simple process, I assume it will be similar for fmt

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, I'll try doing it later, maybe asking in the Zulip first will help, people are very active there.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah zulip is a great place. I messed up git at some point and one of the core members personally took the time to help me clean it up

@marcospb19 marcospb19 mentioned this pull request Oct 15, 2021
@marcospb19 marcospb19 added the hacktoberfest-accepted Tag PR as accepted for the hacktoberfest event label Oct 15, 2021
@marcospb19 marcospb19 merged commit 10af868 into ouch-org:master Oct 15, 2021
@SpyrosRoum SpyrosRoum deleted the Improve-FinalError branch October 15, 2021 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hacktoberfest-accepted Tag PR as accepted for the hacktoberfest event
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants