pub trait PathWalker {
// Required methods
fn move_to(&mut self, x: f32, y: f32);
fn line_to(&mut self, x: f32, y: f32);
fn curve_to(
&mut self,
cx1: f32,
cy1: f32,
cx2: f32,
cy2: f32,
ex: f32,
ey: f32,
);
fn close(&mut self);
// Provided methods
fn curve_to_y(&mut self, cx: f32, cy: f32, ex: f32, ey: f32) { ... }
fn rect(&mut self, x1: f32, y1: f32, x2: f32, y2: f32) { ... }
}