blob: 341021bf5bef3264ce55e99a7854fbb69e668378 [file] [log] [blame]
// 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?) }
}