 
     public static func unarchive(object: AnyObject?) -> ValueType? {
         return (object as? Self)?.value
+    }
+
+    public static func unarchive(objects: [AnyObject]) -> [ValueType] {
+        return objects.reduce([ValueType]()) { (var acc, object) -> [ValueType] in
+            if let value = unarchive(object) {
+                acc.append(value)
+            }
+            return acc
+        }
     }
 }
 

}



// MARK: Saveable

extension YapDB.Index: Saveable {

public protocol Archiver: NSCoding {
    typealias ValueType

    /// Simple helper to unarchive any object, has a default implementation
    static func unarchive(object: AnyObject?) -> ValueType?

    /// Simple helper to unarchive many objects, has a default implementation
    static func unarchive(objects: [AnyObject]) -> [ValueType]

    /// The value type which is being encoded/decoded
    var value: ValueType { get }

