If components are an opt-in component via some derive(Component)
macro we could also have the derive spit out a trait impl for Bundle
too. This would make every component be a one element bundle.
Now if everything is a bundle we can remove insert_bundle
remove_bundle
and just have only insert
and remove
that works off a T: Bundle
bound as it would include both "components" and bundles.
without derive(Component) if you do .insert(Bundle { … }) you silently get wrong behaviour
with derive(Component) you get a compile error
with this it compiles and works exactly how you would expect it to work
@frizi said that we have a #[bundle]
attribute for our derive(Bundle)
macro which allows us to let our bundles contain nested bundles as fields, but if every component is a bundle we can get rid of that attribute and just pretend its on every field because every field is a bundle now.
both of these seem like pretty clear ergonomic wins, question I guess is whether people would find .insert(Bundle { .. })
to be unintuitive
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing