use serde::Deserialize;
use serde_json::{Map, Value};
use std::collections::HashMap;
pub type DeserializedDeferredProps = Option<HashMap<String, Vec<String>>>;
#[derive(Deserialize, PartialEq, Clone, Debug)]
#[allow(unused)]
pub struct AssertableInertia {
pub component: String,
pub props: Map<String, Value>,
pub url: String,
pub version: Option<String>,
#[serde(rename = "clearHistory")]
pub clear_history: bool,
#[serde(rename = "encryptHistory")]
pub encrypt_history: bool,
#[serde(rename = "deferredProps")]
pub deferred_props: DeserializedDeferredProps,
#[serde(rename = "mergeProps")]
pub merge_props: Option<Vec<String>>,
}
pub trait InertiaTestRequest {
fn inertia(self) -> Self;
}
pub trait IntoAssertableInertia {
fn into_assertable_inertia(self) -> AssertableInertia;
}
impl AssertableInertia {
pub fn get_component(&self) -> &str {
&self.component
}
pub fn get_props(&self) -> &Map<String, Value> {
&self.props
}
pub fn get_url(&self) -> &str {
&self.url
}
pub fn get_version(&self) -> Option<&String> {
self.version.as_ref()
}
pub fn get_clear_history(&self) -> bool {
self.clear_history
}
pub fn get_encrypt_history(&self) -> bool {
self.encrypt_history
}
pub fn get_deferred_props(&self) -> Option<&HashMap<String, Vec<String>>> {
self.deferred_props.as_ref()
}
pub fn get_merge_props(&self) -> Option<&Vec<String>> {
self.merge_props.as_ref()
}
}