CommandLineToolkit
30 строк · 717.0 Байт
1/*
2* Copyright (c) Avito Tech LLC
3*/
4
5import Foundation
6
7public final class LoggableDouble: CustomStringConvertible {
8private let value: Double
9private let suffix: String
10
11public init(_ value: Double, suffix: String) {
12self.value = value
13self.suffix = suffix
14}
15
16public var description: String {
17let string = String(format: "%.3f", value)
18return [string, suffix].filter { !$0.isEmpty }.joined(separator: " ")
19}
20}
21
22extension TimeInterval {
23public func loggableInSeconds() -> LoggableDouble {
24loggable(suffix: "sec")
25}
26
27public func loggable(suffix: String) -> LoggableDouble {
28LoggableDouble(self, suffix: suffix)
29}
30}
31