diff --git a/VDS/Protocols/Initable.swift b/VDS/Protocols/Initable.swift index 05cb98d6..a16622be 100644 --- a/VDS/Protocols/Initable.swift +++ b/VDS/Protocols/Initable.swift @@ -12,12 +12,10 @@ public protocol Initable { } extension Withable where Self:Initable { - /// Provides a closure to configure instances inline. - /// - Parameter closure: A closure with a mutable copy of `self` as the argument. - /// - Returns: Simply returns the mutated copy of the instance after called the `closure`. - @discardableResult public static func initWith(_ closure: (_ instance: inout Self) -> Void) -> Self { - var copy = Self() - closure(©) - return copy + + /// Construct a new instance, setting an arbitrary subset of properties + public init(with closure: (inout Self) -> Void) { + self.init() + closure(&self) } }