macro_rules! safe_lock_option_observer {
(on_next: $lock_name:expr, $value:expr) => { ... };
(on_next: $lock_name:expr, values: $values:expr) => { ... };
(on_next_and_termination: $lock_name:expr, $value:expr, $termination:expr) => { ... };
(on_next_and_termination: $lock_name:expr, values: $values:expr, $termination:expr) => { ... };
(on_termination: $lock_name:expr, $value:expr) => { ... };
}