Made `Vector<Scalar>`’s `var scalars` public, adding explicit test for changes in dimension

This commit is contained in:
Vincent Esche 2019-08-11 14:27:25 +02:00
parent 9f858668d9
commit 2659ad8f20
1 changed files with 7 additions and 6 deletions

View File

@ -21,11 +21,13 @@
import Accelerate
public struct Vector<Scalar> where Scalar: FloatingPoint, Scalar: ExpressibleByFloatLiteral {
public var dimensions: Int {
return self.scalars.count
}
public let dimensions: Int
var scalars: [Scalar]
public var scalars: [Scalar] {
didSet {
precondition(self.scalars.count == self.dimensions)
}
}
// MARK: - Initialize
@ -40,8 +42,7 @@ public struct Vector<Scalar> where Scalar: FloatingPoint, Scalar: ExpressibleByF
}
public init(_ scalars: [Scalar]) {
precondition(!scalars.isEmpty)
self.dimensions = scalars.count
self.scalars = scalars
}
}