asCrudRepo

fun <ObjectType, IdType, InputValueType> MutableMap<IdType, ObjectType>.asCrudRepo(    updateCallback: suspend MutableMap<IdType, ObjectType>.(newValue: InputValueType, id: IdType, old: ObjectType) -> ObjectType,     locker: SmartRWLocker = SmartRWLocker(),     createCallback: suspend MutableMap<IdType, ObjectType>.(newValue: InputValueType) -> Pair<IdType, ObjectType>): MapCRUDRepo<ObjectType, IdType, newValue: InputValueType>(source)

MutableMap-based MapCRUDRepo. All internal operations will be locked with locker

Warning: Besides, in case you are using your own MutableMap as a this you should be careful with operations on this this