This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fn main() { | |
| let elements = create_elements(); | |
| let visitor = ConcreteVisitor1 {}; | |
| for e in &elements { | |
| e.accept(&visitor); | |
| } | |
| let visitor = ConcreteVisitor2 {}; | |
| for e in &elements { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| use std::cell::RefCell; | |
| fn main() { | |
| let sw = Switcher::new(One {}); | |
| sw.call(); | |
| sw.call(); | |
| sw.call(); | |
| sw.call(); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #![allow(dead_code)] | |
| use std::any::{Any, TypeId}; | |
| use std::cell::RefCell; | |
| use std::collections::btree_map::BTreeMap; | |
| use std::mem; | |
| use std::rc::Rc; | |
| fn main() {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| use std::any::{Any, TypeId}; | |
| use std::cell::RefCell; | |
| use std::collections::BTreeMap; | |
| fn main() { | |
| let observer = Observer::new(); | |
| observer.subscribe::<FirstEvent, _>(|| println!("notify FirstEvent subscriber 1")); | |
| observer.subscribe::<FirstEvent, _>(|| println!("notify FirstEvent subscriber 2")); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| use std::any::{Any, TypeId}; | |
| use std::fmt::Debug; | |
| fn main() { | |
| call::<FirstType>(); | |
| call::<SecondType>(); | |
| } | |
| fn call<T: UserType>() { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| use std::cell::RefCell; | |
| fn main() { | |
| let observer = Observer::new(); | |
| observer.subscribe(|| println!("notify subscriber 1")); | |
| observer.subscribe(|| println!("notify subscriber 2")); | |
| observer.notify(); | |
| observer.notify(); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| use std::cell::RefCell; | |
| use std::rc::Rc; | |
| fn main() { | |
| let val = Rc::new(RefCell::new("One".to_string())); | |
| let mem1 = Mem{ name: "mem1".to_string(), mem: Rc::clone(&val) }; | |
| let mem2 = Mem{ name: "mem2".to_string(), mem: Rc::clone(&val) }; | |
| print_mem(&mem1, &mem2); // Mem(name: mem1, mem: "One"), Mem(name: mem2, mem: "One") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import 'dart:async'; | |
| import 'package:flutter/material.dart'; | |
| void main() => runApp(const MyApp()); | |
| class MyApp extends StatelessWidget { | |
| const MyApp({Key? key}) : super(key: key); | |
| @override |