Skip to content

Commit 46e8cdd

Browse files
committed
SVG+Hashable
1 parent 319d62e commit 46e8cdd

File tree

6 files changed

+15
-11
lines changed

6 files changed

+15
-11
lines changed

SwiftDraw/Renderer.CGText.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ struct CGTextTypes: RendererTypes {
3737
typealias Rect = String
3838
typealias Color = String
3939
typealias Gradient = LayerTree.Gradient
40-
typealias Mask = [Any]
40+
typealias Mask = [AnyHashable]
4141
typealias Path = [LayerTree.Shape]
4242
typealias Pattern = String
4343
typealias Transform = String
@@ -513,7 +513,7 @@ public final class CGTextRenderer: Renderer {
513513
}
514514
}
515515

516-
func setClip(mask: [Any], frame: String) {
516+
func setClip(mask: [AnyHashable], frame: String) {
517517
lines.append("ctx.clip(to: \(frame), mask: \(mask))")
518518
}
519519

SwiftDraw/Renderer.CoreGraphics.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ struct CGTypes: RendererTypes {
5656
typealias Image = CGImage
5757
}
5858

59-
final class CGTransformingPattern: Equatable {
59+
struct CGTransformingPattern: Hashable {
6060

6161
let bounds: CGRect
6262
let contents: [RendererCommand<CGTypes>]
@@ -70,10 +70,6 @@ final class CGTransformingPattern: Equatable {
7070
let renderer = CGRenderer(context: ctx)
7171
renderer.perform(contents)
7272
}
73-
74-
static func == (lhs: CGTransformingPattern, rhs: CGTransformingPattern) -> Bool {
75-
lhs === rhs
76-
}
7773
}
7874

7975
struct CGProvider: RendererTypeProvider {

SwiftDraw/Renderer.LayerTree.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ struct LayerTreeTypes: RendererTypes {
3737
typealias Rect = LayerTree.Rect
3838
typealias Color = LayerTree.Color
3939
typealias Gradient = LayerTree.Gradient
40-
typealias Mask = [Any]
40+
typealias Mask = [AnyHashable]
4141
typealias Path = [LayerTree.Shape]
4242
typealias Pattern = LayerTree.Pattern
4343
typealias Transform = LayerTree.Transform

SwiftDraw/Renderer.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protocol RendererTypes {
3737
associatedtype Rect: Equatable
3838
associatedtype Color: Equatable
3939
associatedtype Gradient: Equatable
40-
associatedtype Mask
40+
associatedtype Mask: Equatable
4141
associatedtype Path: Equatable
4242
associatedtype Pattern: Equatable
4343
associatedtype Transform: Equatable
@@ -200,3 +200,11 @@ enum RendererCommand<Types: RendererTypes> {
200200
case pushTransparencyLayer
201201
case popTransparencyLayer
202202
}
203+
204+
205+
#if canImport(CoreGraphics)
206+
import CoreGraphics
207+
208+
extension RendererCommand<CGTypes>: Equatable { }
209+
extension RendererCommand<CGTypes>: Hashable { }
210+
#endif

SwiftDraw/SVG.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import Foundation
3434
#if canImport(CoreGraphics)
3535
import CoreGraphics
3636

37-
public struct SVG {
37+
public struct SVG: Hashable {
3838
public let size: CGSize
3939

4040
//An Image is simply an array of CoreGraphics draw commands

SwiftDrawTests/MockRenderer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ final class MockRenderer: Renderer {
102102
operations.append("setClip")
103103
}
104104

105-
func setClip(mask: [Any], frame: LayerTree.Rect) {
105+
func setClip(mask: [AnyHashable], frame: LayerTree.Rect) {
106106
operations.append("setClipMask")
107107
}
108108

0 commit comments

Comments
 (0)