bevyhub_net 0.0.1-rc.2

A lightweight Bevy replication library.
Documentation
use anyhow::Result;





pub fn ron_to_json(ron_str: &str) -> Result<String> {
	let ron_val = ron::de::from_str::<ron::Value>(ron_str)?;
	let json_str = serde_json::to_string_pretty(&ron_val)?;
	Ok(json_str)
}

pub fn json_to_ron(json_str: &str) -> Result<String> {
	let json_val = serde_json::from_str::<serde_json::Value>(json_str)?;
	let ron_str = ron::ser::to_string_pretty(&json_val, Default::default())?;
	Ok(ron_str)
}


#[cfg(test)]
mod test {
	use anyhow::Result;
	use serde::Deserialize;
	use serde::Serialize;
	use sweet::*;

	#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
	struct MyStruct {
		name: String,
		age: u32,
	}

	#[test]
	#[ignore = "ron cant convert from json https://github.com/ron-rs/ron/issues/543"]
	fn ron_to_json() -> Result<()> {
		let val = MyStruct {
			name: "John".to_string(),
			age: 32,
		};
		let ron_str = ron::ser::to_string_pretty(&val, Default::default())?;
		let json = crate::utils::ron_to_json(&ron_str)?;
		let ron_str2 = crate::utils::json_to_ron(&json)?;
		let val2 = ron::de::from_str::<MyStruct>(&ron_str2)?;
		expect(val).to_be(val2)?;

		println!("{}", ron_str);
		println!("{}", json);
		println!("{}", ron_str2);


		Ok(())
	}
}