Advertisement
Guest User

Untitled

a guest
Oct 13th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.49 KB | None | 0 0
  1. pub trait Backend {
  2. fn add(&self, op1: i32, op2: i32) -> i32;
  3. }
  4.  
  5. struct MyBackend {}
  6. impl Backend for MyBackend {
  7. fn add(&self, op1: i32, op2: i32) -> i32 {
  8. op1 + op2
  9. }
  10. }
  11.  
  12. struct Basic {
  13. backend: Box<dyn Backend>
  14. }
  15. use std::ops::Deref;
  16. impl Deref for Basic {
  17. type Target = Box<dyn Backend>;
  18. fn deref(&self) -> &Self::Target {
  19. &self.backend
  20. }
  21. }
  22.  
  23. fn main() {
  24. let x = Basic {
  25. backend: Box::new(MyBackend {})
  26. };
  27. println!("{}", x.add(1, 2));
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement