                                                      rlmObjectType: OGMapping.MappedObject.self)
         self.primaryKeys = rlmObjectMapping.primaryKeys
         
-        self.rlmObjectMapping = { (toMap: inout MappedObject, context: MappingContext) -> Void in
+        self.rlmObjectMapping = { (toMap: inout MappedObject, context: MappingContext) throws -> Void in
             var ogObject = unsafeDowncast(toMap, to: OGMapping.MappedObject.self)
-            rlmObjectMapping.mapping(toMap: &ogObject, context: context)
-        }
-    }
-    
-    public final func mapping(toMap: inout MappedObject, context: MappingContext) {
-        self.rlmObjectMapping(&toMap, context)
+            try rlmObjectMapping.mapping(toMap: &ogObject, context: context)
+        }
+    }
+    
+    public final func mapping(toMap: inout MappedObject, context: MappingContext) throws {
+        try self.rlmObjectMapping(&toMap, context)
     }
 }
 

}

@discardableResult
public func <- <T: RLMObject, U: RealmMapping, C: MappingContext>(field: RLMArray<T>, binding:(key: Binding<U>, context: C)) -> C where U.MappedObject == T, T: Equatable {
    
    return map(toRLMArray: field, using: binding)
}

@discardableResult
public func map<T: RLMObject, U: RealmMapping, C: MappingContext>(toRLMArray field: RLMArray<T>, using binding:(key: Binding<U>, context: C)) -> C where U.MappedObject == T, T: Equatable {
    
    var variableList = RLMArrayBridge(rlmArray: field)
    let bridge = binding.key.generateRLMArrayMappingBridge()

    
    public let adapter: RealmSwiftObjectAdapterBridge<MappedObject>
    public let primaryKeys: [Mapping.PrimaryKeyDescriptor]?
    public let rlmObjectMapping: (inout MappedObject, MappingContext) throws -> Void
    
    public required init<OGMapping: RealmMapping>(rlmObjectMapping: OGMapping) where OGMapping.MappedObject: RLMObject, OGMapping.MappedObject == T {
        
