do { return try User(record["name"], record["age"], record["gender"]) } catch { throw User.Error.decodeFail(error) }