diff --git a/src/en/07_ffi.md b/src/en/07_ffi.md index 9bd75e6..146a10c 100644 --- a/src/en/07_ffi.md +++ b/src/en/07_ffi.md @@ -623,12 +623,9 @@ pub struct Foo(*mut RawFoo); impl Foo { /// Create a Foo pub fn new() -> Option { - let raw_ptr = unsafe { foo_create() }; - if raw_ptr.is_null() { - None - } else { - Some(Foo(raw_ptr)) - } + // The `?` operator here ensures `None` is returned on `NULL`. + let raw_ptr = unsafe { foo_create().as_mut()? }; + Some(Foo(raw_ptr)) } # /// Do something on a Foo