Comments (11)
It actually seems like rustversion
can't accommodate conditionally enabling features?
I can't get this to work
#![rustversion::attr(nightly, feature(unboxed_closures))]
as opposed to
#![cfg_attr(not(feature = "stable"), feature(unboxed_closures))]
@akesson I think you suggested this possibility — any thoughts? I may be doing it wrong.
from leptos.
But rustversion can enable/disable an arbitrary amount of code, right? So, what about this?
#[rustversion::nightly]
#![feature(unboxed_closures)]
from leptos.
The problem is that that's an outer attribute wrapping an inner attribute, which is not possible. See this issue.
from leptos.
I'm not sure what you want to achieve with:
#![rustversion::attr(nightly, feature(unboxed_closures))]
Use nightly, but only if feature unboxed_closures is not available on stable?
Wouldn't simply #[rustversion::nightly]
suffice? When the feature is available on stable, the condition would have to be removed manually.
from leptos.
Actually, shouldn't it be: #[rustversion::attr(nightly, feature(unboxed_closures))]
, without the exclamation mark?
from leptos.
If you do #[rustversion::attr(nightly, feature(unboxed_closures))]
then the compiler interprets it as an annotation of mod context
rather than of the crate.
from leptos.
Here's an idea: add the required #![feature] using a build script. For all other things, use rustversion. That's hacky but at least you don't have to use a stable feature flag
from leptos.
Actually, in this case.. it's much better to enable the stable
feature flag in the build script, with this, and people that depend on leptos won't have to set this flag. (or maybe it can enable feature = unboxed_closures
directly?)
from leptos.
@dlight This seems like a good idea but I'll admit I don't quite know how to do this. If you could give a pointer (or even better a PR) I'd be really grateful.
from leptos.
How about using rustc_version for automatically setting the stable
feature?
I did a test and it seems to work well.
I can do a PR, but probably best to wait for #44 to be merged because there will be Cargo.toml merge conflicts.
from leptos.
I think this should finally be fixed by #148. stable
feature still exists but is now automatically enabled if you're on stable
Rust.
from leptos.
Related Issues (20)
- My short onboarding experience HOT 9
- `callback::NotRawCallback` is not implemented for <closure> HOT 7
- Inconstistency between debug and release on `if let Some(x)...` HOT 5
- Trouble with Events not triggering at all HOT 5
- Can you provide a case of a browser right-click pop-up menu?
- Have signals/StoredValues update/update_value functions return the callbacks return value HOT 6
- examples: add `rust-toolchain.toml` files for examples HOT 1
- Resource::loading gives a warning if disposed before it was fully initialized HOT 2
- leptos_router: Feature: Support for trailing slashes. HOT 13
- Get error about missing "tracing" dependency when trying to use #[component] macro HOT 20
- Route `State` is being lost after Backward and/or Forward navigation
- Improve generic parsing in `view!` macro HOT 1
- compile errors in iterators on stable rust HOT 1
- Use a cloneable type for ActionForm's error prop instead of Box<dyn Error> HOT 2
- Type safe search params in router HOT 2
- Transfer or remove Viz integration? HOT 2
- cargo leptos watch Error: compile sass/scss HOT 2
- trunk serve --open success but no response. HOT 6
- Err(Deserialization("missing field `excluded_tags`")) HOT 3
- Allow to include `view!` content from external file HOT 1
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 leptos.