dioxus/packages/core-macro
Evan Almloff baf5a95cae
Fix cloned rsx double drop (#2839)
* Implement Rc generational pointers

* Clean up error handling a bit

* start adding tests

* Simplify a few types

* Separate Rc and normal generational boxes

* Add tests for rc drop and read

* Move over the pointer instead of the data in ReadOnlySignal props

* Fix panic on ref drop and release mode builds

* final rc signal cleanup

* use rc generational boxes for event handlers as well

* add a regression test for read only signal cloning

* merge main

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-10-14 09:23:09 -07:00
..
.vscode Chore #2028: radically clean up core-macro 2024-03-09 01:09:20 -08:00
docs Document props and component macro (#2522) 2024-06-18 16:06:54 -07:00
src Fix cloned rsx double drop (#2839) 2024-10-14 09:23:09 -07:00
tests Fix cloned rsx double drop (#2839) 2024-10-14 09:23:09 -07:00
Cargo.toml Extract some simple cleanups from 2779 (#2966) 2024-09-16 16:04:20 -07:00
README.md Fix Links & Add Link Checker (#2769) 2024-08-02 10:46:18 -07:00

dioxus-core-macro

Crates.io MIT licensed Build Status Discord chat

Website | Guides | API Docs | Chat

Overview

dioxus-core-macro provides a handful of helpful macros used by the dioxus crate. These include:

  • The rsx! macro that underpins templates and node creation.
  • The component attribute macro denotes a function as a Dioxus component. Currently, this:
    • Transforms function arguments into an auto-derived struct.
    • Ensures that your component name uses PascalCase.
    • Probably more stuff in the future. This macro allows us to have a way of distinguishing functions and components, which can be quite handy.
  • The format_args_f macro which allows f-string formatting with support for expressions.

Contributing

  • Report issues on our issue tracker.
  • Join the discord and ask questions!

License

This project is licensed under the MIT license.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Dioxus by you shall be licensed as MIT without any additional terms or conditions.