pub trait Pinger: Send + Sync {
// Required methods
fn from_options(options: PingOptions) -> Result<Self, PingCreationError>
where Self: Sized;
fn parse_fn(&self) -> fn(String) -> Option<PingResult>;
fn ping_args(&self) -> (&str, Vec<String>);
// Provided method
fn start(&self) -> Result<Receiver<PingResult>, PingCreationError> { ... }
}