Coder Social home page Coder Social logo

rustifact's People

Contributors

mbaulch avatar

Stargazers

 avatar

Watchers

 avatar

rustifact's Issues

Implement write_enum!

I don't currently have a use for write_enum!, but can imagine circumstances in which it may be useful.

If anyone has a need for write_enum! then please reply to this issue and let me know.

Test framework

The obvious approach to testing provided by cargo isn't suitable when build scripts are involved. Investigate alternative approaches, and implement one.

NOTE: A related issue is the testing of examples in the documentation. Consider whether a unified approach could be beneficial.

Absolute paths for imported types

Currently, we assume that the types for identifiers imported via use_symbols! are manually brought into scope. These type identifiers are created in the corresponding implementation of ToTokenStream.

We can't just blindly use absolute paths, as there are contexts where the prefix crate:: is required. To utilise absolute paths, we'd need to selectively transform this path in use_symbols!: presumably with a proc macro.

Tidy OUT_DIR so use_symbols! fails immediately on outdated symbols

Currently, output created in the build script (via the write_X! family of macros) is simply written to OUT_DIR and left as is. In the case that a call write_X exporting a symbol FOO is removed, the call use_symbols!(FOO) will still succeed until OUT_DIR is replaced: typically by calling cargo clean, though also by changing release modes.

It seems desirable that Rustifact entries in OUT_DIR should be cleaned, or old entries should be somehow dereferenced, so that referencing issues aren't hidden until the next complete rebuild. No matter how this is tackled, there are a number of tradeoffs involved.

TODO: Explore these tradeoffs and implement the best strategy. Otherwise, keep the status quo, document it, and explain why this is the preferred approach.

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.