CommandLineToolkit

Форк
0
/
JSONReaderContext.swift 
51 строка · 1.8 Кб
1
import Foundation
2

3
final class NumericStorage {
4
    var bytes = Data()
5
    var parsedNumber: NSNumber?
6
    
7
    init(_ initialBytes: Data) {
8
        bytes = initialBytes
9
    }
10
}
11

12
enum ParsingContext: CustomStringConvertible {
13
    case root
14
    case inObject(key: String?, storage: NSMutableDictionary)
15
    case inArray(key: String?, storage: NSMutableArray)
16
    case inKey(NSMutableData)
17
    case inValue(key: String)
18
    case inStringObject(storage: NSMutableData)
19
    case inStringValue(key: String?, storage: NSMutableData)
20
    case inNullValue(key: String?)
21
    case inTrueValue(key: String?)
22
    case inFalseValue(key: String?)
23
    case inNumericValue(key: String?, storage: NumericStorage)
24
    
25
    var description: String {
26
        switch self {
27
        case .root:
28
            return "root"
29
        case let .inObject(key, storage):
30
            return "inObject for key '\(key ?? "null")': '\(storage)'"
31
        case let .inArray(key, storage):
32
            return "inArray for key '\(key ?? "null")': '\(storage)'"
33
        case let .inKey(key):
34
            return "inKey \(key)"
35
        case let .inValue(key):
36
            return "inValue for key '\(key)'"
37
        case let .inStringValue(key, storage):
38
            return "inStringValue for key '\(key ?? "null")': '\(storage)'"
39
        case let .inStringObject(storage):
40
            return "inStringObject: '\(storage)'"
41
        case let .inNullValue(key):
42
            return "inNullValue for key '\(key ?? "null")'"
43
        case let .inTrueValue(key):
44
            return "inTrueValue for key '\(key ?? "null")'"
45
        case let .inFalseValue(key):
46
            return "inFalseValue for key '\(key ?? "null")'"
47
        case let .inNumericValue(key, storage):
48
            return "inNumericValue for key '\(key ?? "null")': '\(storage)'"
49
        }
50
    }
51
}
52

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

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

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

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