class Request {
}
class Response<T: Request> {
let request: T
required init(request: T) {
self.request = request
}
}
class Adapter {
static func MakeRequest<T: Request, N: Response<T>>(request: T) -> N {
let response = N(request: request)
return response
}
}
class Request {
}
class Response<T: Request> {