56 lines
1.3 KiB
Swift
56 lines
1.3 KiB
Swift
import Foundation
|
|
import Libbox
|
|
import SwiftUI
|
|
|
|
public struct OutboundGroup: Codable {
|
|
let tag: String
|
|
let type: String
|
|
var selected: String
|
|
let selectable: Bool
|
|
var isExpand: Bool
|
|
let items: [OutboundGroupItem]
|
|
|
|
|
|
|
|
|
|
var hashValue: Int {
|
|
var value = tag.hashValue
|
|
(value, _) = value.addingReportingOverflow(selected.hashValue)
|
|
for item in items {
|
|
(value, _) = value.addingReportingOverflow(item.urlTestTime.hashValue)
|
|
}
|
|
return value
|
|
}
|
|
|
|
public init(tag: String, type: String, selected: String, selectable: Bool,isExpand: Bool,items: [OutboundGroupItem] ) {
|
|
self.tag = tag
|
|
self.type = type
|
|
self.selected = selected
|
|
self.selectable = selectable
|
|
self.isExpand = isExpand
|
|
self.items = items
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public extension OutboundGroup {
|
|
|
|
var newhashValue: Int {
|
|
var value = tag.hashValue
|
|
(value, _) = value.addingReportingOverflow(selected.hashValue)
|
|
for item in items {
|
|
(value, _) = value.addingReportingOverflow(item.urlTestTime.hashValue)
|
|
}
|
|
return value
|
|
}
|
|
|
|
}
|
|
|
|
public extension OutboundGroup {
|
|
var displayType: String {
|
|
LibboxProxyDisplayType(type)
|
|
}
|
|
}
|