Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. struct Theme {}
  2.  
  3. impl Theme {
  4. fn new() -> Theme {
  5. Theme {}
  6. }
  7. fn get_standard_font_size(&self) -> i32 {
  8. 12
  9. }
  10. }
  11.  
  12. struct WidgetObj {
  13. font_size: i32
  14. }
  15.  
  16. impl Widget for WidgetObj {
  17. fn get_theme(&self) -> Theme {
  18. Theme::new()
  19. }
  20.  
  21. fn get_internal_font_size(&self) -> i32 {
  22. self.font_size
  23. }
  24. }
  25.  
  26. impl WidgetObj {
  27. fn new(font_size: i32) -> WidgetObj {
  28. WidgetObj {
  29. font_size: font_size
  30. }
  31. }
  32. }
  33.  
  34. trait Widget {
  35. fn get_theme(&self) -> Theme;
  36. fn get_internal_font_size(&self) -> i32;
  37. fn get_actual_font_size(&self) -> i32 {
  38. if self.get_internal_font_size() < 0 {
  39. return self.get_theme().get_standard_font_size();
  40. } else {
  41. return self.get_internal_font_size();
  42. }
  43. }
  44. }
  45.  
  46. fn main() {
  47. let w = WidgetObj::new(-1);
  48. println!("actual font_size: {}", w.get_actual_font_size());
  49. println!("internal font_size: {}", w.get_internal_font_size());
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement