You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nomicon/conversions.md

32 lines
793 B

10 years ago
% Type Conversions
At the end of the day, everything is just a pile of bits somewhere, and type
systems are just there to help us use those bits right. Needing to reinterpret
those piles of bits as different types is a common problem and Rust consequently
gives you several ways to do that.
10 years ago
First we'll look at the ways that *Safe Rust* gives you to reinterpret values.
The most trivial way to do this is to just destructure a value into its
constituent parts and then build a new type out of them. e.g.
10 years ago
```rust
struct Foo {
10 years ago
x: u32,
y: u16,
10 years ago
}
struct Bar {
10 years ago
a: u32,
b: u16,
10 years ago
}
fn reinterpret(foo: Foo) -> Bar {
10 years ago
let Foo { x, y } = foo;
Bar { a: x, b: y }
10 years ago
}
```
But this is, at best, annoying to do. For common conversions, Rust provides
10 years ago
more ergonomic alternatives.