Skip to content

Commit 5c19493

Browse files
Update README.md
1 parent 2c9965b commit 5c19493

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

README.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,49 @@ extension EquatableClazz: Equatable {
8989
```
9090

9191
if you don't want to use all the vars for the Equatable, just select the vars you want and click Generate... -> Equatable
92+
93+
## Generating Hashable
94+
### Example:
95+
```swift
96+
class EquatableClazz {
97+
var var0: Int!
98+
let var1: String
99+
var var2: Bool?
100+
}
101+
```
102+
103+
```swift
104+
extension EquatableClazz: Hashable {
105+
static func ==(lhs: EquatableClazz, rhs: EquatableClazz) -> Bool {
106+
return lhs.var0 == rhs.var0 && lhs.var1 == rhs.var1 && lhs.var2 == rhs.var2
107+
}
108+
109+
var hashValue: Int {
110+
var hashValue = 1
111+
let hashableVars: [AnyHashable?] = [var0, var1, var2]
112+
hashableVars.forEach {
113+
hashValue = 31 * hashValue + ($0?.hashValue ?? 0)
114+
}
115+
return hashValue
116+
}
117+
}
118+
```
119+
120+
121+
## Generating Init
122+
### Example:
123+
```swift
124+
class EquatableClazz {
125+
var var0: Int!
126+
let var1: String
127+
var var2: Bool?
128+
129+
init(var0: Int?, var1: String, var2: Bool?) {
130+
self.var0 = var0
131+
self.var1 = var1
132+
self.var2 = var2
133+
}
134+
135+
136+
}
137+
```

0 commit comments

Comments
 (0)