Crates.io | fracter |
lib.rs | fracter |
version | 0.1.0 |
source | src |
created_at | 2024-04-24 03:05:06.435474 |
updated_at | 2024-04-24 03:05:06.435474 |
description | Fragment hash based router, for Sycamore |
homepage | |
repository | https://github.com/acheul/fracter |
max_upload_size | |
id | 1218338 |
size | 6,139 |
Fragment hash based router, for Sycamore
Fracter
trait will be default implemented for Isomorphism
+ Default
+ PartialEq
implemented enum type.
Supports Sycamore version 0.9.0 or later.
use sycamore::prelude::*;
use fracter::{Fracter, Isomorphism};
#[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Isomorphism)]
#[isomorphism(list=[Index, Notice, Contact])]
pub enum Fragment {
#[default] Index,
Notice,
Contact
}
#[component]
pub fn App<G: Html>() -> View<G> {
// `init` will handle everything: captures hash change, updates history, etc.
let fragment = Fragment::init();
view! {
main() {
// Use fragment as if router
(match fragment.get() {
Fragment::Notice => view! { "📢 Notice" },
Fragment::Contact => view! { "🔭 Contact" },
_ => view! { "✅ Index" },
})
}
}
}