diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 63b8dd3ba6..24f7ce8303 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -36,7 +36,6 @@ - [Conversion](conversion.md) - [`From` and `Into`](conversion/from_into.md) - - [`TryFrom` and `TryInto`](conversion/try_from_try_into.md) - [To and from `String`s](conversion/string.md) - [Expressions](expression.md) diff --git a/src/conversion/try_from_try_into.md b/src/conversion/try_from_try_into.md deleted file mode 100644 index 9e3242895b..0000000000 --- a/src/conversion/try_from_try_into.md +++ /dev/null @@ -1,45 +0,0 @@ -# `TryFrom` and `TryInto` - -Similar to [`From` and `Into`][from-into], [`TryFrom`] and [`TryInto`] are -generic traits for converting between types. Unlike `From`/`Into`, the -`TryFrom`/`TryInto` traits are used for fallible conversions, and as such, -return [`Result`]s. - -[from-into]: conversion/from_into.html -[`TryFrom`]: https://doc.rust-lang.org/std/convert/trait.TryFrom.html -[`TryInto`]: https://doc.rust-lang.org/std/convert/trait.TryInto.html -[`Result`]: https://doc.rust-lang.org/std/result/enum.Result.html - -```rust -use std::convert::TryFrom; -use std::convert::TryInto; - -#[derive(Debug, PartialEq)] -struct EvenNumber(i32); - -impl TryFrom for EvenNumber { - type Error = (); - - fn try_from(value: i32) -> Result { - if value % 2 == 0 { - Ok(EvenNumber(value)) - } else { - Err(()) - } - } -} - -fn main() { - // TryFrom - - assert_eq!(EvenNumber::try_from(8), Ok(EvenNumber(8))); - assert_eq!(EvenNumber::try_from(5), Err(())); - - // TryInto - - let result: Result = 8i32.try_into(); - assert_eq!(result, Ok(EvenNumber(8))); - let result: Result = 5i32.try_into(); - assert_eq!(result, Err(())); -} -```