Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![allow(unused_variables)]
- use std::ops::Add;
- #[derive(Debug)]
- struct A(i32);
- #[derive(Debug)]
- enum E{ONE,TWO,THREE}
- impl Add for A {
- type Output = A;
- fn add(self, rhs: A) -> A {
- A(self.0 + rhs.0)
- }
- }
- fn from_value<T: core::fmt::Debug>(t: T){
- dbg!(t);
- }
- fn from_ref<T: core::fmt::Debug>(t: &T){
- dbg!(t);
- }
- fn from_mut<T: core::fmt::Debug + std::ops::Add::<Output=T>>(t: &mut T){
- dbg!(t);
- t = &mut *t + *t;
- }
- fn main() {
- let mut a = A(1);
- let mut b = E::ONE;
- from_ref(&a);
- from_mut(&mut a);
- let mut c = 1 + a.0;
- from_value(a);
- //from_ref(&b);
- //from_mut(&mut b);
- //from_value(b);
- from_ref(&c);
- from_mut(&mut c);
- from_value(c);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement