Rust implementation