]> git.lizzy.rs Git - rust.git/commitdiff
recursion
authorAlex Burka <durka42+github@gmail.com>
Mon, 13 Jun 2016 21:47:18 +0000 (17:47 -0400)
committerAlex Burka <aburka@seas.upenn.edu>
Wed, 27 Jul 2016 17:58:51 +0000 (13:58 -0400)
src/doc/book/ffi.md

index fb8896da86d731d5ce834fed643a75c2db3f20c2..5a2ec86c12f56673866a2a2c244acfce8d6ba13e 100644 (file)
@@ -580,10 +580,10 @@ However, the language provides a workaround.
 
 As a special case, an `enum` is eligible for the "nullable pointer optimization" if it
 contains exactly two variants, one of which contains no data and the other contains
-a single field of one of the non-nullable types listed above. This means it is represented
-as a single pointer, and the non-data variant is represented as the null pointer. This is
-called an "optimization", but unlike other optimizations it is guaranteed to apply to
-eligible types.
+a single field of one of the non-nullable types listed above (or a struct containing such a type).
+This means it is represented as a single pointer, and the non-data variant is represented as a
+null pointer. This is called an "optimization", but unlike other optimizations it is guaranteed
+to apply to eligible types.
 
 The most common type that takes advantage of the nullable pointer optimization is `Option<T>`,
 where `None` corresponds to `null`. So `Option<extern "C" fn(c_int) -> c_int>` is a correct way