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)
- DX regression in view macro for rust-analyzer 2024-03-18 (v0.3.1885) and newer HOT 5
- Access environment variables in CSR HOT 1
- There is a bug in Safari browser where signals cannot be transmitted properly HOT 1
- DynChild is populated as a single Child in the components' children property HOT 4
- Breaking change in view macro between 0.6.10 and 0.6.11
- Allow custom derive for server_fns with custom encoding HOT 3
- Add Trigger::dispose
- leptos_macro 0.6.11 leptos::view! breaks with some comments
- Non-'static signals
- the format!() bug in <a href={format!()}> HOT 2
- Effects/Memos should't be able to "own" a signal HOT 4
- Nested Suspense ignores SSR Mode and breaks Hydration HOT 2
- Error when running server function inside spawn_local HOT 5
- Click events are registered twice when two leptos custom elements are on a page HOT 3
- about mobile support
- Recursive effects never run after recursing HOT 2
- Clippy warnings in some components with rust 1.78 HOT 1
- rkyv, avoid the copy to byte ? HOT 4
- Check ActionForm input names at compile time HOT 4
- Allow server components in islands architecture to call code behind ssr without need for #[server] 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.