# Functions
NewCollector creates a Collector.
NewReporter creates a new Reporter.
NewThroughput creates a new throughput.
ToIEC converts a size of bytes into the corresponding IEC unit SEE: https://github.com/git/git/blob/be8661a3286c67a5d4088f4226cbd7f8b76544b0/strbuf.c#L830-L869.
ToIECString returns a string representation of a size of bytes including its IEC unit Example: 3.14 GiB.
# Constants
ReceivingObjects represents progress from counting received objects.
ResolvingDeltas represents progress from counting resolved deltas.
ScaleBiB is the base scale for representing a number of bytes.
ScaleGiB is the scale for computing IEC Gibibytes.
ScaleKiB is the scale for computing IEC Kibibytes.
ScaleMiB is the scale for computing IEC Mebibytes.
ThroughputRateSlotCount is the number of samples used to calculate rate.
# Structs
Collector collects data to send progress updates.
CountingUpdate holds the part and whole for calculating percentage of progress.
Reporter sends digested progress updates.
Throughput calculates the rate that data is read.
Update is what the consuming code will get notified with.
# Type aliases
IECScale is a number used to represent bytes at various scales (GiB, MiB, KiB, bytes).
UpdateType is the type of progress update being sent.