Giter Club home page Giter Club logo

fixpp's People

Contributors

oktal avatar techabc avatar ybainier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fixpp's Issues

Required should not be at the Tag level

The Required or Optional attribute should not be at the tag level as a single tag may be used in multiple messages, being optional in one message and required in an other one.

Thus, this attribute should be at the Message level, not at the Tag level.

Visitor: make it possible to return a non-void

Like std::visit, Fix::visit could return a Result<T, ErrorKind> instead of Result<void, ErrorKind> depending on what the Visitor itself returns so that it would be possible to write something like

Fix::visit(frame, size, visitor).then(
    [=](bool handled) {
        if (handled) {
             ....
        }
    }).otherwise(Fix::ErrorKind error) {
});

Make it header only

Currently, the library is header only except for the StreamCursor that is currently compiled in a separate static library.

Should make it all header only

Maximum template instantiation

Currently, -ftemplate-depth is set to 2048, otherwise GCC fails to compile with an Internal Compiler Error.

Investigate why so much template instantiation depth is needed and try to reduce it.

Static assertion in get<T>

Currently, get uses SFINAE to disambiguate between a single field or a repeating group. When attempting to retrieve an invalid tag for a given message, we thus get a compilation error instead of a nice and beautiful static assertion, which is not great

Add a new Strict property to the visit rules

When the parser encounters an unknown tag, it just stops parsing and considers the frame to be invalid.

Instead of just stopping, we could a Strict property to the VisitRules that would tell the parser whether to enforce strict parsing, that is to say conforming to the specification. In non-strict mode, the parser would just ignore the invalid tag and continue parsing

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.