private IOperation ReadReplaceOperation(BinaryReader reader)
        {
            IData key    = KeyPersist.Read(reader);
            IData record = RecordPersist.Read(reader);

            return(new ReplaceOperation(key, record));
        }
        private IOrderedSet <IData, IData> ReadRaw(BinaryReader reader)
        {
            int  count     = reader.ReadInt32();
            bool isOrdered = reader.ReadBoolean();

            var data = orderedSetFactory.Create();

            KeyValuePair <IData, IData>[] array = new KeyValuePair <IData, IData> [count];

            for (int i = 0; i < count; i++)
            {
                IData key    = keyPersist.Read(reader);
                IData record = recordPersist.Read(reader);
                array[i] = new KeyValuePair <IData, IData>(key, record);
            }

            data.LoadFrom(array, count, isOrdered);

            return(data);
        }