Comments (4)
Oooh. I'm a bit on the fence because the new dependency doesn't seem to add a huge amount of value and introduces some magic with the max recursion depth thingy... but it is nicer.
Does this make the compilation times dramatically longer?
Did it strike you as overly complicated to produce that macro vs. the vanilla rust macro experience?
from atsamd.
It didn't make compilation times noticeably longer.
I'd say it took me about an hour with the docs open to figure out a form that worked and how the mashup macro needed to be used in this case. However actually using the macro is less complicated now than it was before.
Having said that, honestly I'm kind of toying with just removing the macro completely despite it being a cool toy. It depends what we're optimising for - i.e. 1) somebody reading the source/ 2) our need to make future changes/ 3) other integrations taking less time.
The best things for those three cases respectively are 1) no macro (the source is entirely clear if boilerplatey), then 2) the old macro (less complicated to change but still halving the code you need to write/refactor), and then 3) the new macro form makes writing out the pin specifications quickest.
Honestly if it were just my crate I'd use the newest macro but the other options are reasonable too.
from atsamd.
let's use the new macro; I've a feeling that we're going to grow more board crates and it will help keep the boilerplate lower.
from atsamd.
Closed via #9
from atsamd.
Related Issues (20)
- Common architecture for `.enable()` APIs HOT 5
- Changes to the `spi` module HOT 5
- No way to set pull-down or pull-up for alternate functions HOT 6
- Wio Terminal: `ButtonController` doesn't report release events HOT 1
- Is the ATSAMDA1 micro supported? HOT 3
- wio-terminal Wi-Fi examples broken by #542 HOT 13
- Read state of EIC pin HOT 1
- Example for standalone usage? HOT 7
- I2C slave mode support HOT 4
- Wrong GCLK used for Metro M4 and Grand Central Express USB
- Non-working implementation of eic::pin::ExternalInterrupt::id() HOT 2
- RTC peripheral can be used without configuring the RTC clock
- PACs need to be regenerated to remove lint diagnostic
- How can I use usb function on 0.15.0 or higher HOT 3
- `Spi` implementation relies on fragile timing HOT 4
- Add support for SAMC2x ? HOT 11
- Correct alternate for USB pins on some M4 BSPs? HOT 4
- `hal::sercom::uart::Config` could potentially check for the correct sercom clock HOT 2
- Allow a way to get >1 `impl Delay` type HOT 8
- pybadge support HOT 2
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 atsamd.