Comments (4)
Here's a WIP list of features we can use to separate the different message parsing of the crate and allow people to only use a certain message(
Every new feature is not small thing, it is increase testing efforts (we need check 2^number_of_feature combinations),
it need documentation and so on. Is any reason to add such features?
Linker even without LTO can remove unused code, and removing dead code is default option for no_std builds.
from nmea.
It's still a matter of pulling the code and compiling it, even when optimizing. It would be nice to test all features separately, however, I don't necessarily think that we should.
I'm also adding this issue as part of #47
from nmea.
It's still a matter of pulling the code and compiling it, even when optimizing.
Not sure that follow you here. You mean that compilation of code for parsing one message is so slow,
that it is worth extra feature to disable it? On my machine in release mode compilation of nmea crate takes < 1 second,
why care about fraction of second?
It would be nice to test all features separately, however, I don't necessarily think that we should.
So if code don't compiled for user, because of feature X reference code hidden under feature Y,
it is not our problem? I suppose we should test all features combination with help of CI.
from nmea.
Not sure that follow you here. You mean that compilation of code for parsing one message is so slow,
@Dushistov Let me rephrase that - you can't optimize the parsing part because messages are dynamic. No matter what you pass inside, str, bytes, you will have the parsing of the different message types, i.e. it will not be optimized (see Nmea::parse()
).
You're still going to have the code for parsing all message types inside the binary and if you have an embedded system with limited memory this can make a difference.
As an example, the uuid
crate can parse UUIDs but can't generate them if you don't allow a given feature (https://docs.rs/uuid/latest/uuid/#dependencies).
from nmea.
Related Issues (20)
- More complete docs HOT 1
- Tests for sentences/utils.rs HOT 3
- What is the MSRV? HOT 1
- Tags for versions 0.1 & 0.2 HOT 2
- Additional message types support HOT 1
- README update - Contributing & dual license
- Iterator-based parser
- Supporting additional sentences HOT 20
- Fix failing test HOT 2
- Not all parts of a RMC sentence are parsed HOT 1
- Update README - what is NMEA 0183
- use `f64` (double) over `f32` precision in the Parser HOT 5
- Fix chrono deprecation warning
- MWV and MDA to "all supported messages" test HOT 1
- Update README/docs for a new release
- CI: Fix code coverage reporting
- Parsing of vendor-specific extended sentences that are not included in the `SentenceType` fails. HOT 3
- Enable sentences with features HOT 7
- Support defmt HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nmea.