您的位置:首页 > 健康 > 美食 > 上海十大好厂排名_长春建站宣传_流量查询网站_google搜索引擎入口

上海十大好厂排名_长春建站宣传_流量查询网站_google搜索引擎入口

2024/12/27 7:28:21 来源:https://blog.csdn.net/jq0123/article/details/142358118  浏览:    关键词:上海十大好厂排名_长春建站宣传_流量查询网站_google搜索引擎入口
上海十大好厂排名_长春建站宣传_流量查询网站_google搜索引擎入口

Rust Empty Type

(Jin Qing’s Column, Sep., 2024)

Crate void defines an empty type enum Void {}.

Empty type is an enum with no variants. Empty type can not be instantiated.
See: https://doc.rust-lang.org/nomicon/exotic-sizes.html

Void is used in statically impossible cases (type-level unreachability).
For instance, a return type of Result<T, Void> indicates that it always returns Ok.

Trait void::ResultVoidErrExt can be used to unwrap the result, statically indicating the unreachability.

impl<T> ResultVoidExt<T> for Result<T, Void> {/// Get the value out of an always-ok Result.////// Never panics, since it is statically known to be Ok.#[inline]fn void_unwrap(self) -> T {match self {Ok(val) => val,Err(e) => unreachable(e)}}
}

rust-libp2p\swarm\src\dummy.rs uses Void to indicate that FromBehaviour event is impossible.

impl crate::handler::ConnectionHandler for ConnectionHandler {type FromBehaviour = Void;...fn on_behaviour_event(&mut self, event: Self::FromBehaviour) {void::unreachable(event)}
...
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com