31
31
//! `into` themselves and `from` themselves
32
32
//!
33
33
//! See each trait for usage examples.
34
- //!
35
- //! [`Into`]: trait.Into.html
36
- //! [`From`]: trait.From.html
37
- //! [`TryFrom`]: trait.TryFrom.html
38
- //! [`TryInto`]: trait.TryInto.html
39
- //! [`AsRef`]: trait.AsRef.html
40
- //! [`AsMut`]: trait.AsMut.html
41
34
42
35
#![ stable( feature = "rust1" , since = "1.0.0" ) ]
43
36
@@ -141,13 +134,11 @@ pub const fn identity<T>(x: T) -> T {
141
134
/// want to accept all references that can be converted to [`&str`] as an argument.
142
135
/// Since both [`String`] and [`&str`] implement `AsRef<str>` we can accept both as input argument.
143
136
///
144
- /// [`Option<T>`]: ../../std/option/enum.Option.html
145
- /// [`Result<T, E>`]: ../../std/result/enum.Result.html
146
- /// [`Borrow`]: ../../std/borrow/trait.Borrow.html
147
- /// [`Hash`]: ../../std/hash/trait.Hash.html
148
- /// [`Eq`]: ../../std/cmp/trait.Eq.html
149
- /// [`Ord`]: ../../std/cmp/trait.Ord.html
150
- /// [`&str`]: ../../std/primitive.str.html
137
+ /// [`Option<T>`]: crate::option::Option
138
+ /// [`Result<T, E>`]: crate::result::Result
139
+ /// [`Borrow`]: crate::borrow::Borrow
140
+ /// [`Eq`]: crate::cmp::Eq
141
+ /// [`Ord`]: crate::cmp::Ord
151
142
/// [`String`]: ../../std/string/struct.String.html
152
143
///
153
144
/// ```
@@ -177,8 +168,8 @@ pub trait AsRef<T: ?Sized> {
177
168
/// **Note: This trait must not fail**. If the conversion can fail, use a
178
169
/// dedicated method which returns an [`Option<T>`] or a [`Result<T, E>`].
179
170
///
180
- /// [`Option<T>`]: ../../std/ option/enum. Option.html
181
- /// [`Result<T, E>`]: ../../std/ result/enum. Result.html
171
+ /// [`Option<T>`]: crate:: option:: Option
172
+ /// [`Result<T, E>`]: crate:: result:: Result
182
173
///
183
174
/// # Generic Implementations
184
175
///
@@ -204,7 +195,7 @@ pub trait AsRef<T: ?Sized> {
204
195
/// assert_eq!(*boxed_num, 1);
205
196
/// ```
206
197
///
207
- /// [`Box<T>`]: ../../std/ boxed/struct. Box.html
198
+ /// [`Box<T>`]: crate:: boxed:: Box<T>
208
199
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
209
200
pub trait AsMut < T : ?Sized > {
210
201
/// Performs the conversion.
@@ -278,13 +269,10 @@ pub trait AsMut<T: ?Sized> {
278
269
/// is_hello(s);
279
270
/// ```
280
271
///
281
- /// [`TryInto`]: trait.TryInto.html
282
- /// [`Option<T>`]: ../../std/option/enum.Option.html
283
- /// [`Result<T, E>`]: ../../std/result/enum.Result.html
272
+ /// [`Option<T>`]: crate::option::Option
273
+ /// [`Result<T, E>`]: crate::result::Result
284
274
/// [`String`]: ../../std/string/struct.String.html
285
- /// [`From`]: trait.From.html
286
- /// [`Into`]: trait.Into.html
287
- /// [`Vec`]: ../../std/vec/struct.Vec.html
275
+ /// [`Vec`]: crate::vec::Vec<T>
288
276
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
289
277
pub trait Into < T > : Sized {
290
278
/// Performs the conversion.
@@ -370,12 +358,9 @@ pub trait Into<T>: Sized {
370
358
/// }
371
359
/// ```
372
360
///
373
- /// [`TryFrom`]: trait.TryFrom.html
374
- /// [`Option<T>`]: ../../std/option/enum.Option.html
375
- /// [`Result<T, E>`]: ../../std/result/enum.Result.html
361
+ /// [`Option<T>`]: crate::option::Option
362
+ /// [`Result<T, E>`]: crate::result::Result
376
363
/// [`String`]: ../../std/string/struct.String.html
377
- /// [`Into`]: trait.Into.html
378
- /// [`from`]: trait.From.html#tymethod.from
379
364
/// [book]: ../../book/ch09-00-error-handling.html
380
365
#[ rustc_diagnostic_item = "from_trait" ]
381
366
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -404,9 +389,6 @@ pub trait From<T>: Sized {
404
389
///
405
390
/// This suffers the same restrictions and reasoning as implementing
406
391
/// [`Into`], see there for details.
407
- ///
408
- /// [`TryFrom`]: trait.TryFrom.html
409
- /// [`Into`]: trait.Into.html
410
392
#[ stable( feature = "try_from" , since = "1.34.0" ) ]
411
393
pub trait TryInto < T > : Sized {
412
394
/// The type returned in the event of a conversion error.
@@ -436,7 +418,7 @@ pub trait TryInto<T>: Sized {
436
418
/// # Generic Implementations
437
419
///
438
420
/// - `TryFrom<T> for U` implies [`TryInto`]`<U> for T`
439
- /// - [`try_from`] is reflexive, which means that `TryFrom<T> for T`
421
+ /// - [`TryFrom:: try_from`] is reflexive, which means that `TryFrom<T> for T`
440
422
/// is implemented and cannot fail -- the associated `Error` type for
441
423
/// calling `T::try_from()` on a value of type `T` is [`Infallible`].
442
424
/// When the [`!`] type is stabilized [`Infallible`] and [`!`] will be
@@ -485,11 +467,8 @@ pub trait TryInto<T>: Sized {
485
467
/// assert!(try_successful_smaller_number.is_ok());
486
468
/// ```
487
469
///
488
- /// [`try_from`]: trait.TryFrom.html#tymethod.try_from
489
- /// [`TryInto`]: trait.TryInto.html
490
- /// [`i32::MAX`]: ../../std/i32/constant.MAX.html
470
+ /// [`i32::MAX`]: crate::i32::MAX
491
471
/// [`!`]: ../../std/primitive.never.html
492
- /// [`Infallible`]: enum.Infallible.html
493
472
#[ stable( feature = "try_from" , since = "1.34.0" ) ]
494
473
pub trait TryFrom < T > : Sized {
495
474
/// The type returned in the event of a conversion error.
@@ -676,7 +655,6 @@ impl AsRef<str> for str {
676
655
///
677
656
/// … and eventually deprecate `Infallible`.
678
657
///
679
- ///
680
658
/// However there is one case where `!` syntax can be used
681
659
/// before `!` is stabilized as a full-fledged type: in the position of a function’s return type.
682
660
/// Specifically, it is possible implementations for two different function pointer types:
@@ -692,10 +670,8 @@ impl AsRef<str> for str {
692
670
/// the two `impl`s will start to overlap
693
671
/// and therefore will be disallowed by the language’s trait coherence rules.
694
672
///
695
- /// [`Ok`]: ../result/enum.Result.html#variant.Ok
696
- /// [`Result`]: ../result/enum.Result.html
697
- /// [`TryFrom`]: trait.TryFrom.html
698
- /// [`Into`]: trait.Into.html
673
+ /// [`Ok`]: super::result::Result::Ok
674
+ /// [`Result`]: super::result::Result
699
675
/// [never]: ../../std/primitive.never.html
700
676
#[ stable( feature = "convert_infallible" , since = "1.34.0" ) ]
701
677
#[ derive( Copy ) ]
0 commit comments