[Request]: Optimize MachineList command to fetch machines and default status concurrently
- Dominant language
- Swift
- Stars
- 49.9k
- Forks
- 1.8k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 22
Description
### Feature or enhancement request details
### Describe the feature / enhancement
In `Sources/ContainerCommands/Machine/MachineList.swift`, the `run()` method currently fetches the list of machines (`client.list()`) and the default machine (`client.getDefault()`) sequentially.
Using Swift's concurrency (`async let`), these two asynchronous operations can be executed in parallel to improve command performance and reduce execution latency.
### Proposed Solution
Update the `run()` function to fetch both parameters concurrently:
```swift
public func run() async throws {
let client = MachineClient()
async let machinesTask = client.list()
async let defaultMachineTask = client.getDefault()
let machines = try await machinesTask
if self.quiet {
machines.forEach { print($0.id) }
return
}
let defaultMachine = try await defaultMachineTask
try printMachines(machines: machines, format: format, defaultMachine: defaultMachine)
}
### Code of Conduct
- [x] I agree to follow this project's Code of Conduct
Contributor guide
Research direction
Open Sources/ContainerCommands/Machine/MachineList.swift and inspect the run() method, especially the client.list() and client.getDefault() calls. Use Swift async let to start both operations concurrently while preserving the quiet and formatted-output behavior shown in the proposed solution. Done means the MachineList command fetches these values in parallel without changing its output behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 85/100