pub trait OpCodeMetadata: Debug {
// Required methods
fn value(&self) -> u8;
fn len(&self) -> usize;
fn is_conditional(&self) -> bool;
fn check_minimal_data_push(&self) -> Result<(), TxScriptError>;
fn is_disabled(&self) -> bool;
fn always_illegal(&self) -> bool;
fn is_push_opcode(&self) -> bool;
fn get_data(&self) -> &[u8] ⓘ;
// Provided method
fn is_empty(&self) -> bool { ... }
}