Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[derive(Debug)]
- struct Peripherals {
- serial1: Option<u32>,
- serial2: Option<u32>
- }
- impl Peripherals {
- fn take_serial(&mut self, idx: usize) -> u32 {
- match idx {
- 0 => self.serial1.take().unwrap(),
- _ => self.serial2.take().unwrap()
- }
- }
- }
- static mut PERIPHERALS: Peripherals = Peripherals {
- serial1: Some(1),
- serial2: Some(2)
- };
- fn main() {
- println!("PERIPHERALS:{:?}", unsafe { &PERIPHERALS });
- let s1 = foo();
- let s2 = bar();
- println!("s1:{}, s2:{}", s1, s2);
- println!("PERIPHERALS:{:?}", unsafe { &PERIPHERALS });
- }
- fn foo() -> u32 {
- unsafe { PERIPHERALS.take_serial(0) }
- }
- fn bar() -> u32 {
- unsafe { PERIPHERALS.take_serial(0) }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement