

Pretty much. Rust is very strict and explicit about everything, while typescript lets you kinda jam things together in ways that are very convenient but harder to keep track of in your head.
o hai mark
Pretty much. Rust is very strict and explicit about everything, while typescript lets you kinda jam things together in ways that are very convenient but harder to keep track of in your head.
Oh boy, now I can stop missing C++
I know, but it does let you sled off a cliff if you choose to.
Prefix the name with what it’s for. For example, I’ve previously got a SoundFontError
from opening soundfont file.
“Error” is already used by std::error::Error
. It might not be imported by the code that imports your error type, but I think it’s better to give it distinct name.
The other thing is that you might want to use more than one library. Typical imports at the top of the file might look like this:
use bingbong::{BingBong, BingBongError, SomethingElse};
use bogos::binted::crotchidizer::{Crotchidizer, CrotchidizerError};
If both libraries named their error enums just “Error”, the collision could be worked around, but it’s an unnecessary extra step:
// Not sure how renaming affects compiler hints.
use bingbong::{BingBong, Error as BingBongError, SomethingElse};
use bogos::binted::crotchidizer::{Crotchidizer, Error as CrotchidizerError};
or if you want to avoid renaming:
use bingbong::{BingBong, SomethingElse};
use bogos::binted::crotchidizer::{self, Crotchidizer};
/* ... */
match result {
Ok(value) => return value,
Err(bingbong::Error::MissionFailed) => panic!(),
Err(bingbong::Error::UrMom) => todo!(),
_ => unreachable!(),
}
if let Err(crotchidizer::Error::SomethingsWrong) = result2 {
// ...
}
If the screenshot had followed conventions, the message would say something like this:
could not convert error type `BingBongError` to `MyAppError`
You can wrap everything in unsafe and keep living dangerously!
You really should avoid naming your type plain “Error”
I don’t know what app you’re using, but that spoiler tag isn’t part of the spec.
Node: Did you say “Nerd”?
That would be nice, if it works out as I’ve been wishing for.