When downloading runtimes, they sometimes can take a long time. This adds the ability to cancel a runtime as it's downloading.
This keeps the continuation of moving away from Combine into Swift Concurrency by using AsyncThrowingStream. Which the progress streams back as it downloads. This is a new one for me and things seem to be working. I could only get it to work by wrapping the process code around a Task INSIDE the return AsyncThrowingStream<Progress, Error> { continuation in.
I did add a TODO around progress warning. I believe ProgressWrapper combines the latest which stops me from just passing a new Progress back
When downloading runtimes, they sometimes can take a long time. This adds the ability to cancel a runtime as it's downloading.
This keeps the continuation of moving away from Combine into Swift Concurrency by using
AsyncThrowingStream
. Which the progress streams back as it downloads. This is a new one for me and things seem to be working. I could only get it to work by wrapping the process code around aTask
INSIDE thereturn AsyncThrowingStream<Progress, Error> { continuation in
.I did add a TODO around progress warning. I believe
ProgressWrapper
combines the latest which stops me from just passing a new Progress back