From 782dd2ea4e4143c8aa78f314cb9a20bbc743b99c Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Thu, 6 Dec 2018 16:30:11 +0530 Subject: Error handling: Introduce a WireGuardResult type to handle errors in callbacks across the app Signed-off-by: Roopesh Chander --- WireGuard/WireGuard/WireGuardResult.swift | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 WireGuard/WireGuard/WireGuardResult.swift (limited to 'WireGuard/WireGuard/WireGuardResult.swift') diff --git a/WireGuard/WireGuard/WireGuardResult.swift b/WireGuard/WireGuard/WireGuardResult.swift new file mode 100644 index 0000000..93fc4c2 --- /dev/null +++ b/WireGuard/WireGuard/WireGuardResult.swift @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +// Copyright © 2018 WireGuard LLC. All Rights Reserved. + +enum WireGuardResult { + case success(T) + case failure(WireGuardAppError) + + var value: T? { + switch (self) { + case .success(let v): return v + case .failure(_): return nil + } + } + + var error: WireGuardAppError? { + switch (self) { + case .success(_): return nil + case .failure(let e): return e + } + } + + var isSuccess: Bool { + switch (self) { + case .success(_): return true + case .failure(_): return false + } + } +} -- cgit v1.2.3-59-g8ed1b