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