Skip to content

Commit 9a75f4f

Browse files
committed
Convert primitives to use intra-doc links
1 parent c0a54cc commit 9a75f4f

File tree

26 files changed

+46
-72
lines changed

26 files changed

+46
-72
lines changed

library/alloc/src/lib.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@
103103
#![feature(fundamental)]
104104
#![feature(inplace_iteration)]
105105
#![feature(int_bits_const)]
106+
// Technically, this is a bug in rustdoc: rustdoc sees the documentation on `#[lang = slice_alloc]`
107+
// blocks is for `&[T]`, which also has documentation using this feature in `core`, and gets mad
108+
// that the feature-gate isn't enabled. Ideally, it wouldn't check for the feature gate for docs
109+
// from other crates, but since this can only appear for lang items, it doesn't seem worth fixing.
110+
#![feature(intra_doc_pointers)]
106111
#![feature(lang_items)]
107112
#![feature(layout_for_ptr)]
108113
#![feature(maybe_uninit_ref)]

library/alloc/src/slice.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! A dynamically-sized view into a contiguous sequence, `[T]`.
22
//!
3-
//! *[See also the slice primitive type](../../std/primitive.slice.html).*
3+
//! *[See also the slice primitive type](slice).*
44
//!
55
//! Slices are a view into a block of memory represented as a pointer and a
66
//! length.
@@ -71,12 +71,12 @@
7171
//! [`.chunks`], [`.windows`] and more.
7272
//!
7373
//! [`Hash`]: core::hash::Hash
74-
//! [`.iter`]: ../../std/primitive.slice.html#method.iter
75-
//! [`.iter_mut`]: ../../std/primitive.slice.html#method.iter_mut
76-
//! [`.split`]: ../../std/primitive.slice.html#method.split
77-
//! [`.splitn`]: ../../std/primitive.slice.html#method.splitn
78-
//! [`.chunks`]: ../../std/primitive.slice.html#method.chunks
79-
//! [`.windows`]: ../../std/primitive.slice.html#method.windows
74+
//! [`.iter`]: slice::iter
75+
//! [`.iter_mut`]: slice::iter_mut
76+
//! [`.split`]: slice::split
77+
//! [`.splitn`]: slice::splitn
78+
//! [`.chunks`]: slice::chunks
79+
//! [`.windows`]: slice::windows
8080
#![stable(feature = "rust1", since = "1.0.0")]
8181
// Many of the usings in this module are only used in the test configuration.
8282
// It's cleaner to just turn off the unused_imports warning than to fix them.
@@ -673,7 +673,7 @@ impl [u8] {
673673
// Extension traits for slices over specific kinds of data
674674
////////////////////////////////////////////////////////////////////////////////
675675

676-
/// Helper trait for [`[T]::concat`](../../std/primitive.slice.html#method.concat).
676+
/// Helper trait for [`[T]::concat`](slice::concat).
677677
///
678678
/// Note: the `Item` type parameter is not used in this trait,
679679
/// but it allows impls to be more generic.
@@ -708,19 +708,19 @@ pub trait Concat<Item: ?Sized> {
708708
/// The resulting type after concatenation
709709
type Output;
710710

711-
/// Implementation of [`[T]::concat`](../../std/primitive.slice.html#method.concat)
711+
/// Implementation of [`[T]::concat`](slice::concat)
712712
#[unstable(feature = "slice_concat_trait", issue = "27747")]
713713
fn concat(slice: &Self) -> Self::Output;
714714
}
715715

716-
/// Helper trait for [`[T]::join`](../../std/primitive.slice.html#method.join)
716+
/// Helper trait for [`[T]::join`](slice::join)
717717
#[unstable(feature = "slice_concat_trait", issue = "27747")]
718718
pub trait Join<Separator> {
719719
#[unstable(feature = "slice_concat_trait", issue = "27747")]
720720
/// The resulting type after concatenation
721721
type Output;
722722

723-
/// Implementation of [`[T]::join`](../../std/primitive.slice.html#method.join)
723+
/// Implementation of [`[T]::join`](slice::join)
724724
#[unstable(feature = "slice_concat_trait", issue = "27747")]
725725
fn join(slice: &Self, sep: Separator) -> Self::Output;
726726
}

library/alloc/src/str.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! Unicode string slices.
22
//!
3-
//! *[See also the `str` primitive type](../../std/primitive.str.html).*
3+
//! *[See also the `str` primitive type](str).*
44
//!
55
//! The `&str` type is one of the two main string types, the other being `String`.
66
//! Unlike its `String` counterpart, its contents are borrowed.

library/alloc/src/string.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ impl String {
495495
/// `from_utf8_lossy()` will replace any invalid UTF-8 sequences with
496496
/// [`U+FFFD REPLACEMENT CHARACTER`][U+FFFD], which looks like this: �
497497
///
498-
/// [byteslice]: ../../std/primitive.slice.html
498+
/// [byteslice]: prim@slice
499499
/// [U+FFFD]: core::char::REPLACEMENT_CHARACTER
500500
///
501501
/// If you are sure that the byte slice is valid UTF-8, and you don't want

library/alloc/src/vec/mod.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ mod spec_extend;
216216
/// # Slicing
217217
///
218218
/// A `Vec` can be mutable. Slices, on the other hand, are read-only objects.
219-
/// To get a [slice], use [`&`]. Example:
219+
/// To get a [slice][prim@slice], use [`&`]. Example:
220220
///
221221
/// ```
222222
/// fn read_slice(slice: &[usize]) {
@@ -369,8 +369,6 @@ mod spec_extend;
369369
/// [`reserve`]: Vec::reserve
370370
/// [`MaybeUninit`]: core::mem::MaybeUninit
371371
/// [owned slice]: Box
372-
/// [slice]: ../../std/primitive.slice.html
373-
/// [`&`]: ../../std/primitive.reference.html
374372
#[stable(feature = "rust1", since = "1.0.0")]
375373
#[cfg_attr(not(test), rustc_diagnostic_item = "vec_type")]
376374
pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> {
@@ -2517,7 +2515,7 @@ impl<T, A: Allocator> Vec<T, A> {
25172515
/// This implementation is specialized for slice iterators, where it uses [`copy_from_slice`] to
25182516
/// append the entire slice at once.
25192517
///
2520-
/// [`copy_from_slice`]: ../../std/primitive.slice.html#method.copy_from_slice
2518+
/// [`copy_from_slice`]: slice::copy_from_slice
25212519
#[stable(feature = "extend_ref", since = "1.2.0")]
25222520
impl<'a, T: Copy + 'a, A: Allocator + 'a> Extend<&'a T> for Vec<T, A> {
25232521
fn extend<I: IntoIterator<Item = &'a T>>(&mut self, iter: I) {

library/core/src/alloc/layout.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,6 @@ impl Layout {
164164
/// [`Layout::for_value`] on a reference to an extern type tail.
165165
/// - otherwise, it is conservatively not allowed to call this function.
166166
///
167-
/// [slice]: ../../std/primitive.slice.html
168167
/// [trait object]: ../../book/ch17-02-trait-objects.html
169168
/// [extern type]: ../../unstable-book/language-features/extern-types.html
170169
#[unstable(feature = "layout_for_ptr", issue = "69835")]

library/core/src/array/iter.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ use crate::{
99
};
1010

1111
/// A by-value [array] iterator.
12-
///
13-
/// [array]: ../../std/primitive.array.html
1412
#[stable(feature = "array_value_iter", since = "1.51.0")]
1513
pub struct IntoIter<T, const N: usize> {
1614
/// This is the array we are iterating over.

library/core/src/array/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//! up to a certain length. Eventually, we should be able to generalize
33
//! to all lengths.
44
//!
5-
//! *[See also the array primitive type](../../std/primitive.array.html).*
5+
//! *[See also the array primitive type](array).*
66
77
#![stable(feature = "core_array", since = "1.36.0")]
88

library/core/src/convert/mod.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,6 @@ pub trait TryInto<T>: Sized {
463463
/// ```
464464
///
465465
/// [`try_from`]: TryFrom::try_from
466-
/// [`!`]: ../../std/primitive.never.html
467466
#[rustc_diagnostic_item = "try_from_trait"]
468467
#[stable(feature = "try_from", since = "1.34.0")]
469468
pub trait TryFrom<T>: Sized {
@@ -673,8 +672,6 @@ impl AsMut<str> for str {
673672
/// However when `Infallible` becomes an alias for the never type,
674673
/// the two `impl`s will start to overlap
675674
/// and therefore will be disallowed by the language’s trait coherence rules.
676-
///
677-
/// [never]: ../../std/primitive.never.html
678675
#[stable(feature = "convert_infallible", since = "1.34.0")]
679676
#[derive(Copy)]
680677
pub enum Infallible {}

library/core/src/ffi.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ use crate::ops::{Deref, DerefMut};
2121
/// compiler down to 1.1.0. After Rust 1.30.0, it was re-exported by
2222
/// this definition. For more information, please read [RFC 2521].
2323
///
24-
/// [pointer]: ../../std/primitive.pointer.html
2524
/// [Nomicon]: https://doc.rust-lang.org/nomicon/ffi.html#representing-opaque-structs
2625
/// [RFC 2521]: https://github.com/rust-lang/rfcs/blob/master/text/2521-c_void-reunification.md
2726
// N.B., for LLVM to recognize the void pointer type and by extension

library/core/src/intrinsics.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,8 +1093,7 @@ extern "rust-intrinsic" {
10931093
/// bounds or arithmetic overflow occurs then any further use of the
10941094
/// returned value will result in undefined behavior.
10951095
///
1096-
/// The stabilized version of this intrinsic is
1097-
/// [`std::pointer::offset`](../../std/primitive.pointer.html#method.offset).
1096+
/// The stabilized version of this intrinsic is [`pointer::offset`].
10981097
#[must_use = "returns a new pointer rather than modifying its argument"]
10991098
#[rustc_const_unstable(feature = "const_ptr_offset", issue = "71499")]
11001099
pub fn offset<T>(dst: *const T, offset: isize) -> *const T;
@@ -1111,8 +1110,7 @@ extern "rust-intrinsic" {
11111110
/// object, and it wraps with two's complement arithmetic. The resulting
11121111
/// value is not necessarily valid to be used to actually access memory.
11131112
///
1114-
/// The stabilized version of this intrinsic is
1115-
/// [`std::pointer::wrapping_offset`](../../std/primitive.pointer.html#method.wrapping_offset).
1113+
/// The stabilized version of this intrinsic is [`pointer::wrapping_offset`].
11161114
#[must_use = "returns a new pointer rather than modifying its argument"]
11171115
#[rustc_const_unstable(feature = "const_ptr_offset", issue = "71499")]
11181116
pub fn arith_offset<T>(dst: *const T, offset: isize) -> *const T;

library/core/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
#![feature(extended_key_value_attributes)]
115115
#![feature(extern_types)]
116116
#![feature(fundamental)]
117-
#![cfg_attr(not(bootstrap), feature(intra_doc_pointers))]
117+
#![feature(intra_doc_pointers)]
118118
#![feature(intrinsics)]
119119
#![feature(lang_items)]
120120
#![feature(link_llvm_intrinsics)]

library/core/src/mem/maybe_uninit.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -976,7 +976,6 @@ impl<T> MaybeUninit<T> {
976976
/// ```
977977
///
978978
/// [`write_slice_cloned`]: MaybeUninit::write_slice_cloned
979-
/// [`slice::copy_from_slice`]: ../../std/primitive.slice.html#method.copy_from_slice
980979
#[unstable(feature = "maybe_uninit_write_slice", issue = "79995")]
981980
pub fn write_slice<'a>(this: &'a mut [MaybeUninit<T>], src: &[T]) -> &'a mut [T]
982981
where
@@ -1037,7 +1036,6 @@ impl<T> MaybeUninit<T> {
10371036
/// ```
10381037
///
10391038
/// [`write_slice`]: MaybeUninit::write_slice
1040-
/// [`slice::clone_from_slice`]: ../../std/primitive.slice.html#method.clone_from_slice
10411039
#[unstable(feature = "maybe_uninit_write_slice", issue = "79995")]
10421040
pub fn write_slice_cloned<'a>(this: &'a mut [MaybeUninit<T>], src: &[T]) -> &'a mut [T]
10431041
where

library/core/src/mem/mod.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,6 @@ pub const fn size_of<T>() -> usize {
308308
/// statically-known size, e.g., a slice [`[T]`][slice] or a [trait object],
309309
/// then `size_of_val` can be used to get the dynamically-known size.
310310
///
311-
/// [slice]: ../../std/primitive.slice.html
312311
/// [trait object]: ../../book/ch17-02-trait-objects.html
313312
///
314313
/// # Examples
@@ -355,7 +354,6 @@ pub const fn size_of_val<T: ?Sized>(val: &T) -> usize {
355354
/// [`size_of_val`] on a reference to a type with an extern type tail.
356355
/// - otherwise, it is conservatively not allowed to call this function.
357356
///
358-
/// [slice]: ../../std/primitive.slice.html
359357
/// [trait object]: ../../book/ch17-02-trait-objects.html
360358
/// [extern type]: ../../unstable-book/language-features/extern-types.html
361359
///
@@ -494,7 +492,6 @@ pub const fn align_of_val<T: ?Sized>(val: &T) -> usize {
494492
/// [`align_of_val`] on a reference to a type with an extern type tail.
495493
/// - otherwise, it is conservatively not allowed to call this function.
496494
///
497-
/// [slice]: ../../std/primitive.slice.html
498495
/// [trait object]: ../../book/ch17-02-trait-objects.html
499496
/// [extern type]: ../../unstable-book/language-features/extern-types.html
500497
///

library/core/src/ops/function.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
/// this can refer to [the relevant section in the *Rustonomicon*][nomicon].
2929
///
3030
/// [book]: ../../book/ch13-01-closures.html
31-
/// [function pointers]: ../../std/primitive.fn.html
31+
/// [function pointers]: fn
3232
/// [nomicon]: ../../nomicon/hrtb.html
3333
///
3434
/// # Examples
@@ -97,7 +97,7 @@ pub trait Fn<Args>: FnMut<Args> {
9797
/// this can refer to [the relevant section in the *Rustonomicon*][nomicon].
9898
///
9999
/// [book]: ../../book/ch13-01-closures.html
100-
/// [function pointers]: ../../std/primitive.fn.html
100+
/// [function pointers]: fn
101101
/// [nomicon]: ../../nomicon/hrtb.html
102102
///
103103
/// # Examples
@@ -176,7 +176,7 @@ pub trait FnMut<Args>: FnOnce<Args> {
176176
/// this can refer to [the relevant section in the *Rustonomicon*][nomicon].
177177
///
178178
/// [book]: ../../book/ch13-01-closures.html
179-
/// [function pointers]: ../../std/primitive.fn.html
179+
/// [function pointers]: fn
180180
/// [nomicon]: ../../nomicon/hrtb.html
181181
///
182182
/// # Examples

library/core/src/ptr/const_ptr.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,8 +1011,6 @@ impl<T> *const [T] {
10111011
/// See also [`slice::from_raw_parts`][].
10121012
///
10131013
/// [valid]: crate::ptr#safety
1014-
/// [`NonNull::dangling()`]: NonNull::dangling
1015-
/// [`pointer::offset`]: ../std/primitive.pointer.html#method.offset
10161014
#[inline]
10171015
#[unstable(feature = "ptr_as_uninit", issue = "75402")]
10181016
pub unsafe fn as_uninit_slice<'a>(self) -> Option<&'a [MaybeUninit<T>]> {

library/core/src/ptr/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! Manually manage memory through raw pointers.
22
//!
3-
//! *[See also the pointer primitive types](../../std/primitive.pointer.html).*
3+
//! *[See also the pointer primitive types](pointer).*
44
//!
55
//! # Safety
66
//!
@@ -60,7 +60,7 @@
6060
//! [ub]: ../../reference/behavior-considered-undefined.html
6161
//! [zst]: ../../nomicon/exotic-sizes.html#zero-sized-types-zsts
6262
//! [atomic operations]: crate::sync::atomic
63-
//! [`offset`]: ../../std/primitive.pointer.html#method.offset
63+
//! [`offset`]: pointer::offset
6464
6565
#![stable(feature = "rust1", since = "1.0.0")]
6666

library/core/src/ptr/mut_ptr.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,8 +1273,6 @@ impl<T> *mut [T] {
12731273
/// See also [`slice::from_raw_parts`][].
12741274
///
12751275
/// [valid]: crate::ptr#safety
1276-
/// [`NonNull::dangling()`]: NonNull::dangling
1277-
/// [`pointer::offset`]: ../std/primitive.pointer.html#method.offset
12781276
#[inline]
12791277
#[unstable(feature = "ptr_as_uninit", issue = "75402")]
12801278
pub unsafe fn as_uninit_slice<'a>(self) -> Option<&'a [MaybeUninit<T>]> {
@@ -1325,8 +1323,6 @@ impl<T> *mut [T] {
13251323
/// See also [`slice::from_raw_parts_mut`][].
13261324
///
13271325
/// [valid]: crate::ptr#safety
1328-
/// [`NonNull::dangling()`]: NonNull::dangling
1329-
/// [`pointer::offset`]: ../std/primitive.pointer.html#method.offset
13301326
#[inline]
13311327
#[unstable(feature = "ptr_as_uninit", issue = "75402")]
13321328
pub unsafe fn as_uninit_slice_mut<'a>(self) -> Option<&'a mut [MaybeUninit<T>]> {

library/core/src/ptr/non_null.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,6 @@ impl<T> NonNull<[T]> {
425425
/// See also [`slice::from_raw_parts`].
426426
///
427427
/// [valid]: crate::ptr#safety
428-
/// [`pointer::offset`]: ../../std/primitive.pointer.html#method.offset
429428
#[inline]
430429
#[unstable(feature = "ptr_as_uninit", issue = "75402")]
431430
pub unsafe fn as_uninit_slice(&self) -> &[MaybeUninit<T>] {
@@ -470,7 +469,6 @@ impl<T> NonNull<[T]> {
470469
/// See also [`slice::from_raw_parts_mut`].
471470
///
472471
/// [valid]: crate::ptr#safety
473-
/// [`pointer::offset`]: ../../std/primitive.pointer.html#method.offset
474472
///
475473
/// # Examples
476474
///

library/core/src/slice/raw.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ use crate::ptr;
8383
///
8484
/// [valid]: ptr#safety
8585
/// [`NonNull::dangling()`]: ptr::NonNull::dangling
86-
/// [`pointer::offset`]: ../../std/primitive.pointer.html#method.offset
8786
#[inline]
8887
#[stable(feature = "rust1", since = "1.0.0")]
8988
pub unsafe fn from_raw_parts<'a, T>(data: *const T, len: usize) -> &'a [T] {
@@ -125,7 +124,6 @@ pub unsafe fn from_raw_parts<'a, T>(data: *const T, len: usize) -> &'a [T] {
125124
///
126125
/// [valid]: ptr#safety
127126
/// [`NonNull::dangling()`]: ptr::NonNull::dangling
128-
/// [`pointer::offset`]: ../../std/primitive.pointer.html#method.offset
129127
#[inline]
130128
#[stable(feature = "rust1", since = "1.0.0")]
131129
pub unsafe fn from_raw_parts_mut<'a, T>(data: *mut T, len: usize) -> &'a mut [T] {

library/core/src/str/converts.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use super::Utf8Error;
1414
/// UTF-8, and then does the conversion.
1515
///
1616
/// [`&str`]: str
17-
/// [byteslice]: ../../std/primitive.slice.html
17+
/// [byteslice]: slice
1818
///
1919
/// If you are sure that the byte slice is valid UTF-8, and you don't want to
2020
/// incur the overhead of the validity check, there is an unsafe version of
@@ -31,7 +31,7 @@ use super::Utf8Error;
3131
/// stack-allocated string. There is an example of this in the
3232
/// examples section below.
3333
///
34-
/// [byteslice]: ../../std/primitive.slice.html
34+
/// [byteslice]: slice
3535
///
3636
/// # Errors
3737
///

library/std/src/ffi/c_str.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,20 +62,18 @@ use crate::sys;
6262
/// u8` argument which is not necessarily nul-terminated, plus another
6363
/// argument with the length of the string — like C's `strndup()`.
6464
/// You can of course get the slice's length with its
65-
/// [`len`][slice.len] method.
65+
/// [`len`][slice::len] method.
6666
///
6767
/// If you need a `&[`[`u8`]`]` slice *with* the nul terminator, you
6868
/// can use [`CString::as_bytes_with_nul`] instead.
6969
///
7070
/// Once you have the kind of slice you need (with or without a nul
7171
/// terminator), you can call the slice's own
72-
/// [`as_ptr`][slice.as_ptr] method to get a read-only raw pointer to pass to
72+
/// [`as_ptr`][slice::as_ptr] method to get a read-only raw pointer to pass to
7373
/// extern functions. See the documentation for that function for a
7474
/// discussion on ensuring the lifetime of the raw pointer.
7575
///
7676
/// [`&str`]: prim@str
77-
/// [slice.as_ptr]: ../primitive.slice.html#method.as_ptr
78-
/// [slice.len]: ../primitive.slice.html#method.len
7977
/// [`Deref`]: ops::Deref
8078
/// [`&CStr`]: CStr
8179
///

library/std/src/io/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ pub(crate) fn default_read_exact<R: Read + ?Sized>(this: &mut R, mut buf: &mut [
482482
/// }
483483
/// ```
484484
///
485-
/// Read from [`&str`] because [`&[u8]`][slice] implements `Read`:
485+
/// Read from [`&str`] because [`&[u8]`][prim@slice] implements `Read`:
486486
///
487487
/// ```no_run
488488
/// # use std::io;
@@ -504,7 +504,6 @@ pub(crate) fn default_read_exact<R: Read + ?Sized>(this: &mut R, mut buf: &mut [
504504
/// [`&str`]: prim@str
505505
/// [`std::io`]: self
506506
/// [`File`]: crate::fs::File
507-
/// [slice]: ../../std/primitive.slice.html
508507
#[stable(feature = "rust1", since = "1.0.0")]
509508
#[doc(spotlight)]
510509
pub trait Read {

0 commit comments

Comments
 (0)