Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Theme {}
- impl Theme {
- fn new() -> Theme {
- Theme {}
- }
- fn get_standard_font_size(&self) -> i32 {
- 12
- }
- }
- struct WidgetObj {
- font_size: i32
- }
- impl Widget for WidgetObj {
- fn get_theme(&self) -> Theme {
- Theme::new()
- }
- fn get_internal_font_size(&self) -> i32 {
- self.font_size
- }
- }
- impl WidgetObj {
- fn new(font_size: i32) -> WidgetObj {
- WidgetObj {
- font_size: font_size
- }
- }
- }
- trait Widget {
- fn get_theme(&self) -> Theme;
- fn get_internal_font_size(&self) -> i32;
- fn get_actual_font_size(&self) -> i32 {
- if self.get_internal_font_size() < 0 {
- return self.get_theme().get_standard_font_size();
- } else {
- return self.get_internal_font_size();
- }
- }
- }
- fn main() {
- let w = WidgetObj::new(-1);
- println!("actual font_size: {}", w.get_actual_font_size());
- println!("internal font_size: {}", w.get_internal_font_size());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement