lariv-rs 0.1.0

Compile-time plugin web application framework built on Axum, SeaORM, Maud, and HTMX
Documentation
use crate::{
    components::{SlotCapability, SlotRegistrar},
    http::ProvideRequestCaps,
    template::{TemplateCapability, TemplateOf, TemplateRegistrar},
};

use super::{
    accounts::{
        AccountCreateModalPage, AccountDetailPage, AccountEditModalPage, AccountJournalEntriesPage,
        AccountJournalEntryItemsPage, AccountListPage, AccountSelectPage, ConfirmDeletePage,
    },
    currencies::{
        CurrencyCreateModalPage, CurrencyDetailPage, CurrencyEditModalPage, CurrencyListPage,
        CurrencySelectPage,
    },
    journals::{
        JournalCreateModalPage, JournalDetailPage, JournalEditModalPage,
        JournalEntryCreateModalPage, JournalEntryDeletePage, JournalEntryDetailPage,
        JournalEntrySelectPage, JournalListPage, JournalSelectPage,
    },
    preferences::AccountingPreferencesPage,
    source_docs::SourceDocSelectPage,
};

crate::define_register_items! {
    plugin: FinanceAccountsTag;
    capability: TemplateCapability;
    trait: TemplateRegistrar;
    method: register_templates;
    wrapper: TemplateOf;
    bounds: [Clone, ProvideRequestCaps, Send, Sync];
    hook: Hook;
    items: [
        AccountListIdx: AccountListPageTag => AccountListPage,
        AccountDetailIdx: AccountDetailPageTag => AccountDetailPage,
        AccountJournalEntriesIdx: AccountJournalEntriesPageTag => AccountJournalEntriesPage,
        AccountJournalEntryItemsIdx: AccountJournalEntryItemsPageTag => AccountJournalEntryItemsPage,
        AccountEditModalIdx: AccountEditModalPageTag => AccountEditModalPage,
        AccountCreateModalIdx: AccountCreateModalPageTag => AccountCreateModalPage,
        AccountSelectIdx: AccountSelectPageTag => AccountSelectPage,
        CurrencyListIdx: CurrencyListPageTag => CurrencyListPage,
        CurrencyDetailIdx: CurrencyDetailPageTag => CurrencyDetailPage,
        CurrencyEditModalIdx: CurrencyEditModalPageTag => CurrencyEditModalPage,
        CurrencyCreateModalIdx: CurrencyCreateModalPageTag => CurrencyCreateModalPage,
        CurrencySelectIdx: CurrencySelectPageTag => CurrencySelectPage,
        JournalListIdx: JournalListPageTag => JournalListPage,
        JournalDetailIdx: JournalDetailPageTag => JournalDetailPage,
        JournalEditModalIdx: JournalEditModalPageTag => JournalEditModalPage,
        JournalCreateModalIdx: JournalCreateModalPageTag => JournalCreateModalPage,
        JournalSelectIdx: JournalSelectPageTag => JournalSelectPage,
        JournalEntryCreateModalIdx: JournalEntryCreateModalPageTag => JournalEntryCreateModalPage,
        JournalEntryDetailIdx: JournalEntryDetailPageTag => JournalEntryDetailPage,
        JournalEntryDeleteIdx: JournalEntryDeletePageTag => JournalEntryDeletePage,
        JournalEntrySelectIdx: JournalEntrySelectPageTag => JournalEntrySelectPage,
        SourceDocSelectIdx: SourceDocSelectPageTag => SourceDocSelectPage,
        AccountingPreferencesIdx: AccountingPreferencesPageTag => AccountingPreferencesPage,
        ConfirmDeleteIdx: FinanceAccountsConfirmDeletePageTag => ConfirmDeletePage,
    ]
}

crate::define_register_items! {
    plugin: FinanceAccountsTag;
    capability: SlotCapability;
    trait: SlotRegistrar;
    method: register_slots;
    bounds: [];
    items: [];
    hook: SlotsHook;
}