             case .DoesNotExist(let key):
                 q.whereKeyDoesNotExist(key)
                 break
+            case .HasPrefix(key: let key, prefix: let prefix):
+                q.whereKey(key, hasPrefix: prefix)
+                break
             }
         }
 

    case .DoesNotExist(let lKey):
        switch (rhs) {
        case .DoesNotExist(let rKey) where lKey == rKey:
            return true
        default:
            return false

    case Descending(String)
    case Exists(String)
    case DoesNotExist(String)
    case HasPrefix(key: String, prefix: String)
}

extension Constraint :Equatable {}
