pub trait PathService {
// Required methods
fn prepare(
&mut self,
commands: &[PathCommand],
style: PathStyle,
constraints: PathConstraints,
) -> (PathId, PathMetrics);
fn release(&mut self, path: PathId);
// Provided method
fn measure(
&mut self,
commands: &[PathCommand],
style: PathStyle,
constraints: PathConstraints,
) -> PathMetrics { ... }
}