Git Product home page Git Product logo

Comments (8)

tikue avatar tikue commented on May 5, 2024

We're going to be adding more configuration options as other changes land (to support more transports and making it generic over serialization protocol) so the Duration arg is probably going to turn into a config struct. So in the case where you want to just use the defaults it'll probably look like Client::new("1.2.3.4:0", Config::default()), which I think will be a readability improvement.

from tarpc.

tikue avatar tikue commented on May 5, 2024

Or perhaps fn new<A: ToSocketAddr>(address: A) -> Client; and fn from_config<A: ToSocketAddr>(config: Config<A>) -> Client;

from tarpc.

tikue avatar tikue commented on May 5, 2024

One other option would be config.create(), though this is slightly less discoverable.

from tarpc.

aochagavia avatar aochagavia commented on May 5, 2024

Maybe it would be interesting to consider the builder pattern, like used in Piston (see WindowSettings).

from tarpc.

tikue avatar tikue commented on May 5, 2024

I don't personally think the builder pattern is useful in this case. I think functional struct updates are equivalent. I think the builder pattern makes sense when there's some amount of work to perform when adding each param, but for this config it will simply connect after all params are set.

from tarpc.

aochagavia avatar aochagavia commented on May 5, 2024

That sounds appealing to the Haskeller in me 😄 . Shall I close this issue?

BTW, I left a question on reddit.

from tarpc.

tikue avatar tikue commented on May 5, 2024

Let's keep this issue open for reference. I'll probably convert to use a config struct pretty soon (I would also accept a PR if you're interested).

from tarpc.

aochagavia avatar aochagavia commented on May 5, 2024

Unfortunately I won't have time to do this in the short term, so go ahead. I hope to be able to help in the future, though.

from tarpc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.