diff options
| author | xizheyin <xizheyin@smail.nju.edu.cn> | 2025-06-28 15:30:47 +0800 |
|---|---|---|
| committer | xizheyin <xizheyin@smail.nju.edu.cn> | 2025-07-07 14:47:35 +0800 |
| commit | 22342b0959e712f62e65f16e655b949e13781c0e (patch) | |
| tree | b0f8d3e830339686ced007bc2f9b70979bf0d79a | |
| parent | bc4376fa73b636eb6f2c7d48b1f731d70f022c4b (diff) | |
| download | rust-22342b0959e712f62e65f16e655b949e13781c0e.tar.gz rust-22342b0959e712f62e65f16e655b949e13781c0e.zip | |
doc(std): clarify `NonZero<T>` usage limitation in doc comment
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
| -rw-r--r-- | library/core/src/num/nonzero.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/library/core/src/num/nonzero.rs b/library/core/src/num/nonzero.rs index 0fa066c8f7e..11d50e0f89f 100644 --- a/library/core/src/num/nonzero.rs +++ b/library/core/src/num/nonzero.rs @@ -111,6 +111,15 @@ impl_zeroable_primitive!( /// ``` /// /// [null pointer optimization]: crate::option#representation +/// +/// # Note on generic usage +/// +/// `NonZero<T>` can only be used with some standard library primitive types +/// (such as `u8`, `i32`, and etc.). The type parameter `T` must implement the +/// internal trait [`ZeroablePrimitive`], which is currently permanently unstable +/// and cannot be implemented by users. Therefore, you cannot use `NonZero<T>` +/// with your own types, nor can you implement traits for all `NonZero<T>`, +/// only for concrete types. #[stable(feature = "generic_nonzero", since = "1.79.0")] #[repr(transparent)] #[rustc_nonnull_optimization_guaranteed] |
