| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import Foundation |
| |
| func equals(_ x: Any?, _ y: Any?) -> Bool { |
| if x == nil, y == nil { |
| return true |
| } |
| |
| guard let x = x as? AnyHashable, let y = y as? AnyHashable else { |
| return false |
| } |
| return x == y |
| } |
| |
| func equalsList(_ x: [Any?]?, _ y: [Any?]?) -> Bool { |
| if x == nil, y == nil { |
| return true |
| } |
| |
| guard x?.count == y?.count else { return false } |
| guard let x = x, let y = y else { return false } |
| |
| return (0..<x.count).allSatisfy { equals(x[$0], y[$0]) } |
| } |
| |
| func equalsDictionary(_ x: [AnyHashable: Any?]?, _ y: [AnyHashable: Any?]?) -> Bool { |
| if x == nil, y == nil { |
| return true |
| } |
| |
| guard x?.count == y?.count else { return false } |
| guard let x = x, let y = y else { return false } |
| |
| return x.allSatisfy { equals($0.value, y[$0.key] as Any?) } |
| } |