public unsafe static bool ValidateCurrentKey <T>(this T self, LowLevelTransaction tx, TreeNodeHeader *node) where T : IIterator
 {
     if (self.RequiredPrefix.HasValue)
     {
         var currentKey = TreeNodeHeader.ToSlicePtr(tx.Allocator, node);
         if (SliceComparer.StartWith(currentKey, self.RequiredPrefix) == false)
         {
             return(false);
         }
     }
     if (self.MaxKey.HasValue)
     {
         var currentKey = TreeNodeHeader.ToSlicePtr(tx.Allocator, node);
         if (SliceComparer.CompareInline(currentKey, self.MaxKey) >= 0)
         {
             return(false);
         }
     }
     return(true);
 }