Files
Ruslan Alikhamov cec7895f0a Adjusted file structure to accommodate two generated files (#1299)
* Adjusted file structure to accommodate two generated files

* Adjusted scripting

* Removed Description, Diffable, Equality for now

* Removed Stencil import

* Updated templates

* Updated scripting

* Updated generated coding

* Disable build deletion (temp)

* Updated template

* Updated generated code

* updated generated code

* Updated generated code

* Adjusted scripting

* Updated scripting

* Updated generated code

* Reverted template deletion

* Removed Stencil imports

* Updated generated code

* trigger CI

* Removed description, diffable and equality stencil templates

* Reverted temporary changes

* Commented failing tests

* Skipping JSExport for description & hash

* Updated generated code

* Enabled failing tests

* Adding stencil templates back to test tests

* Reset generated file for linux for test

* Reverted Extensions for testing

* Reverted ParserResultsComposed

* Attempt to fix unit tests

* Attempt to resolve unit test

* Reverted TypeName asSource

* Reverted TypeName revertion

* Reverted revert of ParserResultComposed

* Reverted revert of Extensions

* Reverted revert of Linux.content.generated

* Reverted attempts to fix unit tests

* Fix for the failing codegen tests

* Added clarifying comment

* Removed description, diffable and equality stencil templates

* Updated generated code

* Tinkering with optimization level for speed boost

* Excluded stencil templates for codegen

* Fixed wrong compiler flag

* Removed speed optimization to a separate PR

* Reverted test code
2024-03-13 00:01:29 +04:00

78 lines
2.4 KiB
Swift

//
// Created by Sébastien Duperron on 03/01/2018.
// Copyright © 2018 Pixle. All rights reserved.
//
import Foundation
/// :nodoc:
#if canImport(ObjectiveC)
@objcMembers
#endif
public final class BytesRange: NSObject, SourceryModel, Diffable {
public let offset: Int64
public let length: Int64
public init(offset: Int64, length: Int64) {
self.offset = offset
self.length = length
}
public convenience init(range: (offset: Int64, length: Int64)) {
self.init(offset: range.offset, length: range.length)
}
/// :nodoc:
// sourcery: skipJSExport
override public var description: String {
var string = "\(Swift.type(of: self)): "
string += "offset = \(String(describing: self.offset)), "
string += "length = \(String(describing: self.length))"
return string
}
public func diffAgainst(_ object: Any?) -> DiffableResult {
let results = DiffableResult()
guard let castObject = object as? BytesRange else {
results.append("Incorrect type <expected: BytesRange, received: \(Swift.type(of: object))>")
return results
}
results.append(contentsOf: DiffableResult(identifier: "offset").trackDifference(actual: self.offset, expected: castObject.offset))
results.append(contentsOf: DiffableResult(identifier: "length").trackDifference(actual: self.length, expected: castObject.length))
return results
}
/// :nodoc:
// sourcery: skipJSExport
public override var hash: Int {
var hasher = Hasher()
hasher.combine(self.offset)
hasher.combine(self.length)
return hasher.finalize()
}
/// :nodoc:
public override func isEqual(_ object: Any?) -> Bool {
guard let rhs = object as? BytesRange else { return false }
if self.offset != rhs.offset { return false }
if self.length != rhs.length { return false }
return true
}
// sourcery:inline:BytesRange.AutoCoding
/// :nodoc:
required public init?(coder aDecoder: NSCoder) {
self.offset = aDecoder.decodeInt64(forKey: "offset")
self.length = aDecoder.decodeInt64(forKey: "length")
}
/// :nodoc:
public func encode(with aCoder: NSCoder) {
aCoder.encode(self.offset, forKey: "offset")
aCoder.encode(self.length, forKey: "length")
}
// sourcery:end
}