refactor(runtime): return iterator from resolve_addr #8891
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR does refactoring for
runtime/resolve_addr.rs
.At first I did it in the other PR (#8790) but I have extracted it as a separate PR to allow #8790 to focus on
Deno.resolveDns
API.The changes in this PR are:
resolve_addr
andresolve_addr_sync
return iterators ofSocketAddr
, not just a singleSocketAddr
. These functions previously called.next()
on an iterator internally, and returned it, so the callers of these functions had no way of handling other items than the first item in the iterator. This change allows the caller to decide how to use the returned iterator.generic_error
in deno_core instead ofanyhow::Context
. When I worked on refactor(cli): add async version of resolve_addr function #8743, I didn't know there were utility error functions likegeneric_error
.See also #8790 (comment)
CC @bartlomieju