use crate::core::traits::Form;
pub fn serialize_form<T: Form>(form: &T) -> Result<String, String> {
serde_json::to_string(form).map_err(|e| format!("Failed to serialize form: {}", e))
}
pub fn deserialize_form<T: Form>(json: &str) -> Result<T, String> {
serde_json::from_str(json).map_err(|e| format!("Failed to deserialize form: {}", e))
}
pub fn form_from_json<T: Form>(json: serde_json::Value) -> Result<T, String> {
serde_json::from_value(json).map_err(|e| format!("Failed to create form from JSON: {}", e))
}
pub fn form_to_json<T: Form>(form: &T) -> Result<serde_json::Value, String> {
serde_json::to_value(form).map_err(|e| format!("Failed to convert form to JSON: {}", e))
}
pub fn forms_are_equal<T: Form + PartialEq>(form1: &T, form2: &T) -> bool {
form1 == form2
}