fn foo(pin: &mut Option) { let temp = pin.take(); let analog = temp.into_analog_input(); analog.read(); let temp = analog.into_input(); *pin = Some(temp); }