           @nextField()
           @nextValue()
 
+    # Return the number of bytes read in this iteration.
     @_bytesRead - start
 
   close: ->

            break if @offset == @terminal
            return @_bytesRead - start if offset is end

        # Unpack the field value.
        bytes = value = @value

        # Create a hex string.

      # array elements, we repeat the current field type.
      if ++@index <  @repeat
        @nextValue()

      # Otherwise, we've got a complete field value, either a JavaScript
      # primitive or raw bytes as an array or hex string.
      else

        # Push the field value after running it through the pipeline.
        if part.endianness isnt "x"

          # If the field is a packed field, unpack the values and push them onto
          # the field list.
          if packing = part.packing
            for pack, i in packing
              if pack.endianness is "b"
                sum = 0
