[AndroidManifest] serializer and deserializer for Rust. This library will also likely continue to stay up to date with the official AndroidManifest specification as changes happen.
[AndroidManifest]: https://developer.android.com/guide/topics/manifest/manifest-intro
```toml
# Cargo.toml
[dependencies]
android-manifest = "*"
```
Create `AndroidManifest.xml` by yourself:
```rust
let manifest = AndroidManifest {
package: "com.example.toggletest".to_string(),
version_code: Some(1),
version_name: Some("1.0".to_string()),
application: Application {
allow_backup: Some(true.into())),
icon: Some(MipmapOrDrawableResource::mipmap("ic_launcher", None)),
label: Some(StringResourceOrString::resource("app_name", None)),
theme: Some(StyleResource::new("AppTheme", None)),
activity: vec![Activity {
label: Some(StringResourceOrString::resource("app_name", None)),
name: "com.example.toggletest.MainActivity".to_string(),
intent_filter: vec![IntentFilter {
action: vec![Action {
name: Some("android.intent.action.MAIN".to_string()),
}],
category: vec![Category {
name: Some("android.intent.category.LAUNCHER".to_string()),
}],
..Default::default()
}],
..Default::default()
}],
..Default::default()
},
..Default::default()
};
let serialized_manifest = android_manifest::to_string_pretty(&manifest).unwrap();
```
Or parse any `AndroidManifest.xml` file:
```rust
let xml = r#"
"#;
let manifest: AndroidManifest = android_manifest::from_str(xml).unwrap();
```
# License
This project is licensed under Apache License, Version 2.0, ([LICENSE](LICENSE) or http://www.apache.org/licenses/LICENSE-2.0).
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in toml-rs by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.