From 13a5e9f30e7b0ec5757d80645682872f7c192aca Mon Sep 17 00:00:00 2001 From: Lukas Schmidt Date: Wed, 21 Jun 2017 08:13:41 +0200 Subject: [PATCH] better way to type Erase a Resource --- Source/Resource.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Resource.swift b/Source/Resource.swift index add92fe..692c597 100644 --- a/Source/Resource.swift +++ b/Source/Resource.swift @@ -42,11 +42,17 @@ public struct Resource: ResourceModeling { } public extension ResourceModeling { - /// Wrappes self into a `Resource` to hide away implementation details. This could be helpful when you think your typeinformation gets leaked. /// /// - Returns: the wrapped ressource + @available(*, deprecated, message: "Use `init(resource: R)`") func wrapped() -> Resource { return Resource(request: request, parse: parse) } } + +public extension Resource { + init(resource: R) where Model == R.Model { + self = Resource(request: resource.request, parse: resource.parse) + } +}