Shared-State Concurrency in Rust