It is well supported in all browsers and operating systems. At least VS Code and IntelliJ support it, and even some terminals.
I don’t understand the “serde2” issue. Isn’t “someusername/serde” strictly worse than “serde2”?
GitHub being the only auth provider is something the maintainers wanted to fix, but didn’t have enough bandwidth to implement. I think they would welcome contributions!
If all you do in the Err(e) => ...
match arm is returning the error, then you absolutely should use the ?
operator instead.
If the match arm also converts the error type into another error type, implement the From
trait for the conversion, then you can use ?
as well.
If you want to add more information to the error, you can use .map_err(...)?
. Or, if you’re using the anyhow
crate, .with_context(...)?
.
I can’t remember ever needing more than two question marks (??
), and even that is very rare in my experience.
Apparently the maintainer trusted the first-time contributor enough to propose tackling another bug.
There is no trust needed when asking someone to fix a bug. It’s not like the maintainer would lose anything if the contributor failed to fix the bug.
Besides, I think it is natural to want recognition when you do a lot of work for free. Many other people wouldn’t do this unpaid work at all; recognizing their contribution is the bare minimum of good manners. Even in a company where employees are paid for their work, it is customary to give credit to co-workers who have helped you. Most people don’t like to work in places where they don’t feel appreciated, and that is also true in Open-Source.
It’s not possible to instantiate or assign, which is more like a never type than a unit
Actually, this is because void
is not a type, it is just a keyword, a placeholder used instead of the return type when a function doesn’t return anything.
If it were a bottom type, that would mean that a method returning void
must diverge, which is simply not true.
Also, if it were a bottom type, it would be possible to write an “unreachable” method
void unreachable(void bottom) {
return bottom;
}
Even though it couldn’t be called, it should be possible to define it, if void
was a bottom type. But it is not, because void
isn’t a bottom type, it’s no type at all.
No it’s not, it is 100% a unit type (except it’s not really a type, since you can only use it as return type and nowhere else)
Easy interop with legacy code is how kotlin took off, so maybe it will work out?
Good interop was a requirement for widespread adoption, but not the reason why programmers want to use it. There’s also null safety, a much nicer syntax, custom DSLs, sealed classes, type inference, data classes, named and optional arguments, template strings, multi-line strings, computed properties, arbitrary-arity function types, delegation, custom operators, operator overloading, structural equality, destructuring, extension methods, inline functions and non-local control flow, reified types, …
Some of these features have since been added to Java.
It gives you more type safety, because you use a ProxyᐸFooᐳ
instead of just usize
.
Actually, it’s not a package repository (it doesn’t store crates), it’s “just” a website to display metadata from crates published on crates.io. It also shows certain information from docs.rs, GitHub, rustsec.org, etc, and has many useful features that the crates.io website lacks, including a pretty good full-text search.
Thank you, too!
Even if this was true in 2013, when this article was written, the more accurate answer today would be “it depends”.
In Rust, there are multi-threaded async executors implementing M:N threading (e.g. tokio), where M asynchronous tasks are mapped to N operating system threads. So when you await
, the rest of the function may very well run in a different OS thread.
Swift also has async
/await
, and like tokio it uses multiple threads to run concurrent tasks in parallel (therefore using multiple OS threads).
Scala’s equivalent to asynchronous tasks are Promise
s, which can also run in parallel, as I understand it.
Kotlin doesn’t have async/await, but it has a similar concept, coroutines, which are basically a superset of asynchronous tasks. While Kotlin’s coroutines are single-threaded by default, there is a multi-threaded implementation, enabling truly parallel coroutines.
Go also uses coroutines (which it calls “goroutines”), which can use multiple threads.
C++ will soon get coroutines as well, which support multithreading to run coroutines in parallel.
My Fairphone is 4 years old, it has been dropped on the floor (even hard surfaces like rocks and asphalt) countless times. It still works and looks like new. It has a protective cover that covers the edges, but not the screen or the back. It still survived all these years without a scratch.
To be funny, a joke requires a grain of truth. Absurdity alone doesn’t make a good joke.
The majority of aircraft pilot fatalities occur in crashes of privately owned planes and helicopters rather than on regularly scheduled commercial jet aircraft.
https://www.ishn.com/articles/112748-top-25-most-dangerous-jobs-in-the-united-states
By the way, most deaths aren’t reported on the news.
It is so frustrating when a conspiracy narrative is mixed with valid criticism, which ultimately only taints the criticism by association with the “conspiracy.”
I guess it cannot be done if their IT infrastructure was not designed with that use case in mind. Although I’m not familiar with human resource management software, I don’t find this hard to believe at all.
Also, you’ll understand what Biron Tchaikovsky meant with “Please believe me” when you look at their email address. They already tried to do it, and probably complained many times before giving up.
Thanks!
Piping in a shell script should be doable, it just hasn’t been requested yet.