public func {{ method_name }}({{ params }}) async throws -> AsyncThrowingStream<{{ item_type }}, Error> {
let handle = try await RustBridge.{{ start_fn }}(self.inner{{ call_args }})
return AsyncThrowingStream<{{ item_type }}, Error> { continuation in
let task = Task.detached(priority: .userInitiated) {
do {
while !Task.isCancelled {
let json = try await handle.next().toString()
if json.isEmpty { break }
{{ chunk_decode }} continuation.yield(chunk)
}
continuation.finish()
} catch {
continuation.finish(throwing: error)
}
}
continuation.onTermination = { _ in task.cancel() }
}
}