macro_rules! call_rust_trait_impl {
(unsafe mut $self:expr, $method:ident ( $($arg:expr),* )) => { ... };
(unsafe $self:expr, $method:ident ( $($arg:expr),* )) => { ... };
(mut $self:expr, $method:ident ( $($arg:expr),* )) => { ... };
($self:expr, $method:ident ( $($arg:expr),* )) => { ... };
}