mirror of
https://github.com/yewstack/yew.git
synced 2025-12-08 21:26:25 +00:00
* Make a use_hook hook with the new Hook trait. * Implement Lifetime. * Rewrites function signature. * Only apply lifetime if there're other lifetimes. * Cleanup signature rewrite logic. * Rewrite hook body. * Port some built-in hooks. * Finish porting all built-in hooks. * Port tests. * Fix tests. * Migrate to macro-based hooks. * Fix HookContext, add tests on non-possible locations. * Fix stderr for trybuild. * Add 1 more test case. * Adjust doc location. * Pretty print hook signature. * Fix Items & std::ops::Fn*. * Add use_memo. * Optimise Implementation of hooks. * Use Box to capture function value only. * Detect whether needs boxing. * Add args if boxing not needed. * Enforce hook number. * Deduplicate use_effect. * Optimise Implementation. * Update documentation. * Fix website test. Strip BoxedHook implementation from it. * Allow doc string. * Workaround doc tests. * Optimise codebase & documentation. * Fix website test. * Reduce implementation complexity. * Destructor is no more. * Documentation and macros. * Reduce heap allocation and hook complexity. * Remove Queue as well. * Prefer Generics. * Fix typo. * Remove more allocations. * Add comments. * Remove outdated comment. * Bare Function Pointer for better code size.
40 lines
677 B
Rust
40 lines
677 B
Rust
use yew::prelude::*;
|
|
|
|
#[derive(Debug, PartialEq, Clone)]
|
|
struct Ctx;
|
|
|
|
#[function_component]
|
|
fn Comp() -> Html {
|
|
if let Some(_m) = use_context::<Ctx>() {
|
|
use_context::<Ctx>().unwrap();
|
|
todo!()
|
|
}
|
|
|
|
let _ = || {
|
|
use_context::<Ctx>().unwrap();
|
|
todo!()
|
|
};
|
|
|
|
for _ in 0..10 {
|
|
use_context::<Ctx>().unwrap();
|
|
}
|
|
|
|
while let Some(_m) = use_context::<Ctx>() {
|
|
use_context::<Ctx>().unwrap();
|
|
}
|
|
|
|
match use_context::<Ctx>() {
|
|
Some(_) => use_context::<Ctx>(),
|
|
None => {
|
|
todo!()
|
|
}
|
|
}
|
|
|
|
loop {
|
|
use_context::<Ctx>().unwrap();
|
|
todo!()
|
|
}
|
|
}
|
|
|
|
fn main() {}
|