/// <summary>
 /// Writes blocks of bytes to the current sink using data read from a list.
 /// </summary>
 /// <param name="sink"></param>
 /// <param name="source"></param>
 /// <param name="offset"></param>
 /// <param name="count"></param>
 /// <param name="bufferSize">
 /// The size of the temporary buffer used to copy elements from the provided source.
 /// </param>
 internal static void Write(ITriflesByteWriter sink, IList <byte> source, int offset, int count, int bufferSize = 0)
 {
     Checker.NotNull(sink, "sink");
     Checker.NotNull(source, "source");
     Checker.SpanInRange(source.Count, offset, count, "offset", "count");
     WriteNoCheck(sink, source, offset, count, bufferSize);
 }
 internal static void ReadFully(ITriflesByteReader source, byte[] buffer, int offset, int count)
 {
     Checker.NotNull(source, "source");
     Checker.NotNull(buffer, "buffer");
     Checker.SpanInRange(buffer.Length, offset, count, "offset", "count");
     ReadFullyNoCheck(source, buffer, offset, count);
 }