pub mod config;
pub mod contracts;
pub mod error;
pub mod headers;
pub mod page;
pub mod pending;
pub mod props;
pub mod redirect;
pub mod render;
pub mod request;
pub mod response;
pub use config::{
AssetVersion, InertiaConfig, RootDocument, ScriptBody, default_root_document,
vite_root_document,
};
pub use contracts::{
ClientData, ContractArtifact, ContractError, ContractType, PageContract, PageContractEntry,
PageContracts, PageProps, PageSchema, PageType, PropSchema, PropsSchema,
};
pub use error::InertiaError;
pub use page::{Component, PageIdentifier, PageOptions, ScrollProp};
pub use pending::PendingPage;
pub use props::{
MergeStrategy, OnceProp, Prop, Props, SharedProps, always, deep_merge, deferred,
deferred_group, eager, infinite_scroll, lazy, match_on, merge, merge_path, once, once_with,
optional, prepend, rescue,
};
pub use redirect::{Redirect, external, fragment, redirect};
pub use render::{Inertia, InertiaLayer};
pub use request::{InertiaRequest, MergeIntent, PartialSelection};
#[macro_export]
macro_rules! inertia {
($component:expr, { $($name:ident),* $(,)? }) => {
$crate::inertia::Inertia::render(
&inertia,
$component,
$crate::serde_json::json!({ $(stringify!($name): $name,)* }),
)
.await
.map(|r| r)
.map_err($crate::Error::from)
};
}