Emcee

Форк
0
/
ResolvingResult+DirectlyAccessibleResource.swift 
31 строка · 1.2 Кб
1
import Foundation
2
import PathLib
3
import ResourceLocation
4

5
public extension ResolvingResult {
6
    enum DirectlyAccessibleResourceError: Error, CustomStringConvertible {
7
        case archiveFilenameNotSpecified(ResolvingResult)
8
        
9
        public var description: String {
10
            switch self {
11
            case .archiveFilenameNotSpecified(let resolvingResult):
12
                return "Unable to resolve directly accessible resource for \(resolvingResult) because archive file name is not specified"
13
            }
14
        }
15
    }
16
    
17
    /// Returns path in case if ResolvingResult points to local file or to remote archive with specified file inside it.
18
    /// Otherwise throws error.
19
    func directlyAccessibleResourcePath() throws -> AbsolutePath {
20
        switch self {
21
        case .directlyAccessibleFile(let path):
22
            return path
23
        case .contentsOfArchive(let containerPath, let filenameInArchive):
24
            if let filenameInArchive = filenameInArchive {
25
                return containerPath.appending(filenameInArchive)
26
            } else {
27
                throw DirectlyAccessibleResourceError.archiveFilenameNotSpecified(self)
28
            }
29
        }
30
    }
31
}
32

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.