本文简要介绍rust语言中 std::ops::Try.branch
的用法。
用法
fn branch(self) -> ControlFlow<Self::Residual, Self::Output>
在 ?
中用于决定操作符是应该产生一个值(因为这返回了 ControlFlow::Continue
)还是将一个值传播回调用者(因为这返回了 ControlFlow::Break
)。
例子
#![feature(try_trait_v2)]
use std::ops::{ControlFlow, Try};
assert_eq!(Ok::<_, String>(3).branch(), ControlFlow::Continue(3));
assert_eq!(Err::<String, _>(3).branch(), ControlFlow::Break(Err(3)));
assert_eq!(Some(3).branch(), ControlFlow::Continue(3));
assert_eq!(None::<String>.branch(), ControlFlow::Break(None));
assert_eq!(ControlFlow::<String, _>::Continue(3).branch(), ControlFlow::Continue(3));
assert_eq!(
ControlFlow::<_, String>::Break(3).branch(),
ControlFlow::Break(ControlFlow::Break(3)),
);
相关用法
- Rust Try.from_output用法及代码示例
- Rust TryIter用法及代码示例
- Rust Try用法及代码示例
- Rust TryFrom用法及代码示例
- Rust TcpStream.local_addr用法及代码示例
- Rust TcpStream.peer_addr用法及代码示例
- Rust TcpListener.take_error用法及代码示例
- Rust Take.limit用法及代码示例
- Rust TcpStream.set_nodelay用法及代码示例
- Rust ToSocketAddrs用法及代码示例
- Rust TcpStream.nodelay用法及代码示例
- Rust ToOwned.to_owned用法及代码示例
- Rust TcpListener.into_incoming用法及代码示例
- Rust TcpStream.take_error用法及代码示例
- Rust TcpListener.accept用法及代码示例
- Rust ThreadId用法及代码示例
- Rust Take.set_limit用法及代码示例
- Rust Thread.unpark用法及代码示例
- Rust TcpStream.write_timeout用法及代码示例
- Rust TcpListener.local_addr用法及代码示例
- Rust Take.get_ref用法及代码示例
- Rust TcpStream.peek用法及代码示例
- Rust TcpStream.set_write_timeout用法及代码示例
- Rust TcpListener.ttl用法及代码示例
- Rust TcpStream.set_nonblocking用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::ops::Try.branch。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。