You've already forked comprehensive-rust
mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-06-17 22:57:35 +02:00
Add a slide about writing unsafe functions.
This commit is contained in:
18
src/unsafe/calling-unsafe-functions.md
Normal file
18
src/unsafe/calling-unsafe-functions.md
Normal file
@ -0,0 +1,18 @@
|
||||
# Calling Unsafe Functions
|
||||
|
||||
A function or method can be marked `unsafe` if it has extra preconditions you
|
||||
must uphold to avoid undefined behaviour:
|
||||
|
||||
```rust,editable
|
||||
fn main() {
|
||||
let emojis = "🗻∈🌏";
|
||||
|
||||
// Safe because the indices are in the correct order, within the bounds of
|
||||
// the string slice, and lie on UTF-8 sequence boundaries.
|
||||
unsafe {
|
||||
println!("{}", emojis.get_unchecked(0..4));
|
||||
println!("{}", emojis.get_unchecked(4..7));
|
||||
println!("{}", emojis.get_unchecked(7..11));
|
||||
}
|
||||
}
|
||||
```
|
Reference in New Issue
Block a user