GithubHelp home page GithubHelp logo

::from_str but no ::to_str about cron HOT 7 CLOSED

zslayton avatar zslayton commented on July 17, 2024
::from_str but no ::to_str

from cron.

Comments (7)

rtyler avatar rtyler commented on July 17, 2024 1

I believe with #54 merged this can be closed

from cron.

bittrance avatar bittrance commented on July 17, 2024

I'm missing this as well. Would you accept PRs for impl Display for Schedule and/or a to_string() methods?

from cron.

zslayton avatar zslayton commented on July 17, 2024

Sure, I'd be happy to accept a PR for this. Just to clarify the scope:

  • We'd add a new String field to the Schedule struct that stores the original input text that was parsed
  • Both Display and to_string() would use that text for their implementations.

Is that what you had in mind?

I'd like to avoid trying to optimize the original text representation (for example: converting 1,2,3,4 to 1-4) since that's a much bigger can of worms.

from cron.

bittrance avatar bittrance commented on July 17, 2024

A possible implementation can be found at bittrance#1 . However, Schedule is a public struct which a user may construct manually, so we will only have "original" input if the schedule was created with the FromStr implementation. We don't have struct inheritance in Rust, so we can't trivially use different backing structs for FromStr and "raw" construction.

In this respect, having the various fields be able to recreate a string representation would better respect the current API.

Alternatively, you could expose Schedule::from as a constructor?

from cron.

zslayton avatar zslayton commented on July 17, 2024

However, Schedule is a public struct which a user may construct manually

I don't believe this is the case. While the struct itself is public, its member fields are not, which should preclude users from constructing new instances of it on their own. I've created a minimal code example demonstrating this. Let me know if I've misunderstood something.

from cron.

bittrance avatar bittrance commented on July 17, 2024

Indeed, this is the aspect of Rust visibility system that I never manage to internalize. Very well, then. Here's the PR #54 .

from cron.

zslayton avatar zslayton commented on July 17, 2024

Addressed by #54.

from cron.

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.