CommandLineToolkit

Форк
0
47 строк · 1.2 Кб
1
/*
2
 * Copyright (c) Avito Tech LLC
3
 */
4

5
import Foundation
6

7
public struct LogEntry: Equatable, Codable {
8
    public let file: String
9
    public let line: UInt
10
    public private(set) var coordinates: [LogEntryCoordinate]
11
    public let message: String
12
    public let timestamp: Date
13
    public let verbosity: Verbosity
14

15
    public init(
16
        file: String,
17
        line: UInt,
18
        coordinates: [LogEntryCoordinate],
19
        message: String,
20
        timestamp: Date,
21
        verbosity: Verbosity
22
    ) {
23
        self.file = file
24
        self.line = line
25
        self.coordinates = coordinates
26
        self.message = message
27
        self.timestamp = timestamp
28
        self.verbosity = verbosity
29
    }
30
    
31
    public func with(appendedCoordinate: LogEntryCoordinate) -> Self {
32
        var newCoordinates = coordinates
33
        newCoordinates.append(appendedCoordinate)
34
        
35
        return with(coordinates: newCoordinates)
36
    }
37
    
38
    public func with(coordinates: [LogEntryCoordinate]) -> Self {
39
        var result = self
40
        result.coordinates = coordinates
41
        return result
42
    }
43
    
44
    public func coordinate(name: String) -> LogEntryCoordinate? {
45
        coordinates.first { $0.name == name }
46
    }
47
}
48

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

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

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

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