Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mod final_impl {
- #[derive(Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
- #[repr(transparent)]
- pub struct Final<T>(T);
- impl<T> Final<T> {
- pub fn new(val: T) -> Self {
- Self(val)
- }
- }
- impl<T> std::ops::Deref for Final<T> {
- type Target = T;
- fn deref(&self) -> &T {
- &self.0
- }
- }
- }
- use final_impl::Final;
- struct MyStruct {
- vec: Final<Vec<u8>>,
- }
- impl MyStruct {
- fn new() -> Self {
- Self {
- vec: Final::new(vec![0, 1, 2, 3]),
- }
- }
- }
- fn main() {
- let mut s = MyStruct::new();
- s.vec.push(4);
- }
Add Comment
Please, Sign In to add comment