In a nutshell, you probably want your Server struct to implement iron::middleware::Handler. Instead of writing handler functions on their own as you did with get, you can have Server implement Handler so that each time Server.handle is called, you'll have access to &self which of course means having access to self.state. You'll need to be aware of lifetimes and avoid mutating Server.state, lest concurrent HTTP requests lead to a race condition- which should of course be prevented by the compiler, but it could get hairy.