aboutsummaryrefslogtreecommitdiff
path: root/include/linux/overflow.h
diff options
context:
space:
mode:
authorWedson Almeida Filho <[email protected]>2022-11-10 17:41:22 +0100
committerMiguel Ojeda <[email protected]>2022-12-04 01:59:15 +0100
commit76e2c2d9a22a402e816607ae575b1a194cc45a31 (patch)
treeeea7876a6b253f8d79efbc263935e0c29edfb5f8 /include/linux/overflow.h
parent266def2a0f5bbe44b11902bd4c93b9c5d8b8d708 (diff)
rust: error: add `From` implementations for `Error`
Add a set of `From` implementations for the `Error` kernel type. These implementations allow to easily convert from standard Rust error types to the usual kernel errors based on one of the `E*` integer codes. On top of that, the question mark Rust operator (`?`) implicitly performs a conversion on the error value using the `From` trait when propagating. Thus it is extra convenient to use. For instance, a kernel function that needs to convert a `i64` into a `i32` and to bubble up the error as a kernel error may write: fn f(x: i64) -> Result<...> { ... let y = i32::try_from(x)?; ... } which will transform the `TryFromIntError` into an `Err(EINVAL)`. Co-developed-by: Adam Bratschi-Kaye <[email protected]> Signed-off-by: Adam Bratschi-Kaye <[email protected]> Co-developed-by: Nándor István Krácser <[email protected]> Signed-off-by: Nándor István Krácser <[email protected]> Signed-off-by: Wedson Almeida Filho <[email protected]> Reviewed-by: Finn Behrens <[email protected]> [Reworded, adapted for upstream and applied latest changes] Signed-off-by: Miguel Ojeda <[email protected]>
Diffstat (limited to 'include/linux/overflow.h')
0 files changed, 0 insertions, 0 deletions