Skip to content

Commit 86ed227

Browse files
committed
Made Proposal easier to test. Cleanup: tests, misc.
1 parent 2fbfa34 commit 86ed227

File tree

20 files changed

+237
-264
lines changed

20 files changed

+237
-264
lines changed

Sources/DiffableTextKit/Models/Context.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,7 @@ extension Context {
227227
// Values
228228
//=--------------------------------------=
229229
let proposal = Proposal(layout!.snapshot,
230-
with: Snapshot(characters, as: .content),
231-
in: layout!.snapshot.indices(at: range))
230+
with: Snapshot(characters), in: range)
232231
//=--------------------------------------=
233232
// Commit
234233
//=--------------------------------------=

Sources/DiffableTextKit/Models/Proposal.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,14 @@ public struct Proposal {
2626
// MARK: Initializers
2727
//=------------------------------------------------------------------------=
2828

29-
@inlinable init(_ base: Snapshot, with replacement: Snapshot, in range: Range<Snapshot.Index>) {
29+
@inlinable public init(_ base: Snapshot, with replacement: Snapshot, in range: Range<Snapshot.Index>) {
3030
self.base = base; self.replacement = replacement; self.range = range
3131
}
3232

33+
@inlinable public init<T>(_ base: Snapshot, with replacement: Snapshot, in range: Range<Offset<T>>) {
34+
self.init(base, with: replacement, in: base.indices(at: range))
35+
}
36+
3337
//=------------------------------------------------------------------------=
3438
// MARK: Accessors
3539
//=------------------------------------------------------------------------=

Sources/DiffableTextKit/Utilities/Info.swift

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,25 @@ ExpressibleByStringInterpolation, ExpressibleByStringLiteral {
3333
// MARK: Initializers
3434
//=------------------------------------------------------------------------=
3535

36-
@inlinable @inline(__always) init(_ content: @autoclosure () -> [String] = []) {
36+
@inlinable @inline(__always) init(_ content: @autoclosure () -> [String]) {
3737
#if DEBUG
3838
self.content = content()
3939
#endif
4040
}
4141

42+
//=------------------------------------------------------------------------=
43+
// MARK: Initializers x Indirect
44+
//=------------------------------------------------------------------------=
45+
46+
@inlinable @inline(__always) public init() {
47+
self.init([String]())
48+
}
49+
4250
@inlinable @inline(__always) public init(stringLiteral content: String) {
4351
self.init([content])
4452
}
4553

46-
//=------------------------------------------------------------------------=
47-
// MARK: Initializers
48-
//=------------------------------------------------------------------------=
49-
50-
@inlinable @inline(__always) init(_ instance: @autoclosure () -> Self) {
54+
@inlinable @inline(__always) public init(_ instance: @autoclosure () -> Self) {
5155
self = instance()
5256
}
5357

@@ -64,7 +68,7 @@ ExpressibleByStringInterpolation, ExpressibleByStringLiteral {
6468
}
6569

6670
//=------------------------------------------------------------------------=
67-
// MARK: Initializers
71+
// MARK: Initializers x Builder
6872
//=------------------------------------------------------------------------=
6973

7074
@inlinable @inline(__always) public init(@Info _ instance: () -> Self) {
@@ -76,11 +80,11 @@ ExpressibleByStringInterpolation, ExpressibleByStringLiteral {
7680
}
7781

7882
//=------------------------------------------------------------------------=
79-
// MARK: Initializers
83+
// MARK: Initializers x Special
8084
//=------------------------------------------------------------------------=
8185

8286
@inlinable @inline(__always) public static func note(_ item: @autoclosure () -> Any) -> Self {
83-
self.init([String(describing: item())])
87+
Self(["\(item())"])
8488
}
8589

8690
@inlinable @inline(__always) public static func mark(_ item: @autoclosure () -> Any) -> Self {

Sources/DiffableTextKitXNumber/Graphs/Graph+Decimal.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import Foundation
1414
//*============================================================================*
1515

1616
public final class _DecimalGraph: _Graph, _Numberable, _Percentable, _Currencyable {
17+
1718
public typealias Value = Decimal
1819
public typealias Input = Decimal
1920

@@ -24,15 +25,15 @@ public final class _DecimalGraph: _Graph, _Numberable, _Percentable, _Currencyab
2425
public typealias Number = _StandardStyle<Value.FormatStyle >
2526
public typealias Percent = _StandardStyle<Value.FormatStyle.Percent >
2627
public typealias Currency = _CurrencyStyle<Value.FormatStyle.Currency>
27-
28+
2829
//=------------------------------------------------------------------------=
2930
// MARK: State
3031
//=------------------------------------------------------------------------=
3132

3233
public let min: Value
3334
public let max: Value
3435
public let precision: Int
35-
36+
3637
//=------------------------------------------------------------------------=
3738
// MARK: Initializers
3839
//=------------------------------------------------------------------------=

Sources/DiffableTextKitXNumber/Graphs/Graph+Optional.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import Foundation
1515
//*============================================================================*
1616

1717
public struct _OptionalGraph<Base: _Graph>: _Graph where Base.Input == Base.Value {
18+
1819
public typealias Value = Base.Value?
1920
public typealias Input = Base.Input
2021

Sources/DiffableTextKitXNumber/Styles/Default+Currency.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ where Format: _Format & _Currency, Format.FormatInput: _Input {
4343
// MARK: * Cache
4444
//*========================================================================*
4545

46-
public final class Cache: _DefaultCache {
46+
public final class Cache: _DefaultCache {
47+
4748
public typealias Value = Format.FormatInput
4849

4950
//=--------------------------------------------------------------------=

Sources/DiffableTextKitXNumber/Styles/Default+Standard.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ where Format: _Format & _Standard, Format.FormatInput: _Input {
4343
//*========================================================================*
4444

4545
public final class Cache: _DefaultCache {
46+
4647
public typealias Value = Format.FormatInput
4748

4849
//=--------------------------------------------------------------------=

Sources/DiffableTextKitXNumber/Styles/Default+Style.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ extension _DefaultStyle {
3939
//=------------------------------------------------------------------------=
4040

4141
@inlinable public func locale(_ locale: Locale) -> Self {
42-
var S0 = self; S0.locale = locale; return S0
42+
var S0 = self; S0.locale = locale; return S0
4343
}
4444

4545
//=------------------------------------------------------------------------=
@@ -52,7 +52,7 @@ extension _DefaultStyle {
5252

5353
@inlinable public func update(_ cache: inout Cache) {
5454
switch cache.compatible(self) {
55-
case true: cache.style = self
56-
case false: cache = self.cache() }
55+
case true: cache.style = self
56+
case false: cache = self.cache() }
5757
}
5858
}

Sources/DiffableTextKitXNumber/Tokens/Digit.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import Foundation
4242
// MARK: Initializers
4343
//=------------------------------------------------------------------------=
4444

45-
@inlinable init(ascii: UInt8) { self.ascii = ascii }
45+
private init(ascii: UInt8) { self.ascii = ascii }
4646

4747
//=------------------------------------------------------------------------=
4848
// MARK: Utilities

Sources/DiffableTextKitXNumber/Tokens/Separator.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import Foundation
3434
// MARK: Initializers
3535
//=------------------------------------------------------------------------=
3636

37-
@inlinable init(ascii: UInt8) { self.ascii = ascii }
37+
private init(ascii: UInt8) { self.ascii = ascii }
3838

3939
//=------------------------------------------------------------------------=
4040
// MARK: Utilities

0 commit comments

Comments
 (0)