We need an explicit Done variant for each progress event so we can distinguish between accidental drop due to an error and normal termination. E.g. GetBlobResult / GetBlobItem Also, GetBlobResult should be called GetBlobProgress to be consistent with the rest of the crate.