struct AcceptInvite { email: String, } struct Json(T); struct Invitation { email: Option, } #[post("/invites//accept", data = "")] fn accept_invite(token: String, body: Json) { let invitation = invitation_store::find_by_token(token); invitation_service::accept(invitation.email.or(Some(body.0.email))); } mod invitation_store { use super::Invitation; pub fn find_by_token(_token: T) -> Invitation { Invitation { email: None } } } mod invitation_service { pub fn accept(_email: T) {} }