diff options
| author | Artur Roos <artur.roos@ktnlvr.dev> | 2025-04-23 14:31:34 +0300 | 
|---|---|---|
| committer | Artur Roos <artur.roos@ktnlvr.dev> | 2025-04-23 14:31:34 +0300 | 
| commit | 36ae6575fd85dd6eb9a00e097e47b38fa25235a0 (patch) | |
| tree | f1e2584a2da38e4ac34d59ee1034f4ff58383bcc /library/std/src | |
| parent | b8005bff3248cfc6e327faf4fa631ac49bb49ba9 (diff) | |
| download | rust-36ae6575fd85dd6eb9a00e097e47b38fa25235a0.tar.gz rust-36ae6575fd85dd6eb9a00e097e47b38fa25235a0.zip | |
Document breaking out of a named code block
Diffstat (limited to 'library/std/src')
| -rw-r--r-- | library/std/src/keyword_docs.rs | 27 | 
1 files changed, 27 insertions, 0 deletions
| diff --git a/library/std/src/keyword_docs.rs b/library/std/src/keyword_docs.rs index c07c391892d..b0e55c78725 100644 --- a/library/std/src/keyword_docs.rs +++ b/library/std/src/keyword_docs.rs @@ -109,6 +109,33 @@ mod as_keyword {} /// println!("{result}"); /// ``` /// +/// It is also possible to exit from any *labelled* block returning the value early. +/// If no value specified `break;` returns `()`. +/// +/// ```rust +/// let inputs = vec!["Cow", "Cat", "Dog", "Snake", "Cod"]; +/// +/// let mut results = vec![]; +/// for input in inputs { +/// let result = 'filter: { +/// if input.len() > 3 { +/// break 'filter Err("Too long"); +/// }; +/// +/// if !input.contains("C") { +/// break 'filter Err("No Cs"); +/// }; +/// +/// Ok(input.to_uppercase()) +/// }; +/// +/// results.push(result); +/// } +/// +/// // [Ok("COW"), Ok("CAT"), Err("No Cs"), Err("Too long"), Ok("COD")] +/// println!("{:?}", results) +/// ``` +/// /// For more details consult the [Reference on "break expression"] and the [Reference on "break and /// loop values"]. /// | 
