mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-30 00:23:24 +00:00
Refactor project structure
This commit is contained in:
committed by
Tate, Hongliang Tian
parent
bd878dd1c9
commit
e3c227ae06
15
kernel/libs/aster-util/src/dup.rs
Normal file
15
kernel/libs/aster-util/src/dup.rs
Normal file
@ -0,0 +1,15 @@
|
||||
// SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
/// This trait is a _fallible_ version of `Clone`.
|
||||
///
|
||||
/// If any object of a type `T` is duplicable, then `T` should implement
|
||||
/// `Clone`. However, if whether an object is duplicable must be determined
|
||||
/// on a per-object basis at runtime, then `T` should implement `Dup` as
|
||||
/// the `dup` method is allowed to return an error.
|
||||
///
|
||||
/// As a best practice, the `Clone` and `Dup` traits should be implemented
|
||||
/// _exclusively_ to one another. In other words, a type should not implement
|
||||
/// both traits.
|
||||
pub trait Dup: Sized {
|
||||
fn dup(&self) -> aster_frame::Result<Self>;
|
||||
}
|
Reference in New Issue
Block a user