ns std::web::mvc use std::web::{HttpRequest, HttpResponse} pub int Controller { fn handle(req: HttpRequest, res: HttpResponse) } pub ann Path { path: String } pub ann Get { path: Option } pub ann Post { path: Option } #decorator pub impl RestController(fld target: Any) : Controller { impl fn handle(req, res) { // Use reflection } } // Usage +RestController @Path("/greeting") pub impl GreetingController { fld greeting: mut String @Get pub fn getGreeting() = "Hello, World!" @Post pub fn setGreeting(@RequestBody newGreeting: String) { self.greeting = newGreeting return self.greeting } } fn main() { let server = server << GreetingController() server.listen 8080 }