pub trait Datagram: Debug {
type G: OperationGenerator;
// Required methods
fn operation_generator(
self,
geometry: &Geometry,
) -> Result<Self::G, AUTDInternalError>;
fn timeout(&self) -> Option<Duration>;
// Provided method
fn parallel_threshold(&self) -> Option<usize> { ... }
}