Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

service: Impl Service for async functions #657

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Commits on Mar 21, 2022

  1. service: Impl Service for async functions

    This PR just a proposal, hence being a draft, but I think its something
    we should at least consider for tower-service 1.0.
    
    The idea is to remove the blanket `Service` impls for `&mut S` and
    `Box<S>` and replace them with an impl for `F where FnMut(Request) ->
    Future<Output = Result<Response, Error>>`, and then remove `service_fn`.
    
    I personally think and impl for async fns is more valuable mainly to
    hammer home the "services are just async fns" line.
    
    I haven't yet encountered any actual need for the previous impls.
    `Ready` was the only thing in tower that used it and it could be easily
    changed to not require them.
    
    If we decide to do this I think we should consider doing the same for
    `Layer`, i.e. remove `impl Layer for &'a L` and make `Fn(S) -> S2` impl
    `Layer`.
    
    This came out of some talk in #650.
    davidpdrsn committed Mar 21, 2022
    Configuration menu
    Copy the full SHA
    cd8e729 View commit details
    Browse the repository at this point in the history

Commits on Mar 22, 2022

  1. Add ByRef

    davidpdrsn committed Mar 22, 2022
    Configuration menu
    Copy the full SHA
    f3b15c1 View commit details
    Browse the repository at this point in the history