Files
tuwunel/src/core/utils/result/unwrap_infallible.rs
Jason Volk 76509830e6 chain_width to 50
Signed-off-by: Jason Volk <jason@zemos.net>
2025-04-22 04:42:34 +00:00

21 lines
447 B
Rust

use std::convert::Infallible;
use super::{DebugInspect, Result};
use crate::error;
pub trait UnwrapInfallible<T> {
fn unwrap_infallible(self) -> T;
}
impl<T> UnwrapInfallible<T> for Result<T, Infallible> {
#[inline]
fn unwrap_infallible(self) -> T {
// SAFETY: Branchless unwrap for errors that can never happen. In debug
// mode this is asserted.
unsafe {
self.debug_inspect_err(error::infallible)
.unwrap_unchecked()
}
}
}