From cda43e0f27aeae9e3397f66f5332a5b7518bd480 Mon Sep 17 00:00:00 2001 From: Rakuyo Date: Fri, 28 Jun 2024 11:46:17 +0800 Subject: [PATCH] feat: Add `EmptyError` --- Sources/Core/Utilities/EmptyError.swift | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Sources/Core/Utilities/EmptyError.swift diff --git a/Sources/Core/Utilities/EmptyError.swift b/Sources/Core/Utilities/EmptyError.swift new file mode 100644 index 0000000..a59e359 --- /dev/null +++ b/Sources/Core/Utilities/EmptyError.swift @@ -0,0 +1,23 @@ +// +// EmptyError.swift +// RakuyoKit +// +// Created by Rakuyo on 2024/5/27. +// Copyright © 2024 RakuyoKit. All rights reserved. +// + +import Foundation + +public typealias NoErrorResult = Result + +// MARK: - EmptyError + +/// Placeholder when `.failure` is needed but `Error` is not needed +/// +/// `Result` means no error will occur, so `.failure` cannot be constructed in this case +/// But sometimes `.failure` is needed but it doesn't matter what kind of error is thrown. +/// It would be troublesome to construct a specific Error in this case. In this case, `EmptyError` can be used +public struct EmptyError: Error, ExpressibleByNilLiteral { + public init() { } + public init(nilLiteral _: ()) { } +}