-
Notifications
You must be signed in to change notification settings - Fork 160
Open
Description
This is an equivalent API of TryFrom<Vec<T>> for [T; N]
which was stabilized in Rust 1.48.
Reason:
When using the smallvec
crate in a message-passing context, I often find I using it as a container for payloads with pre-determined length.
fn send(&self) -> SmallVec<[i32; 2]> {
smallvec![1, 2, 3]
}
fn recv(&mut self, msg: SmallVec<[Box<dyn Any>; 2]>) {
let [a, b, c] = some_unwrap_magic!(msg);
// ...
}
Now the only way to do this seems to be calling next().unwrap()
on msg.into_iter()
. But Vec
provides a very nice way of doing this, and presumably more friendly to compiler optimizations:
let [a, b, c]: [Box<dyn Any>; 3] = msg.try_into().unwrap();
I wish this feature to make its way into ver 2.0
Metadata
Metadata
Assignees
Labels
No labels