1#![doc = include_str!("readme.md")]
2use core::range::Range;
3
4#[derive(Clone, Debug, PartialEq, Eq, Hash)]
6#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7pub struct IniRoot {
8 pub sections: Vec<Section>,
10 pub properties: Vec<Property>,
12}
13
14#[derive(Clone, Debug, PartialEq, Eq, Hash)]
16#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
17pub struct Section {
18 pub name: String,
20 pub properties: Vec<Property>,
22 #[cfg_attr(feature = "serde", serde(with = "oak_core::serde_range"))]
24 pub span: Range<usize>,
25}
26
27#[derive(Clone, Debug, PartialEq, Eq, Hash)]
29#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
30pub struct Property {
31 pub key: String,
33 pub value: String,
35 #[cfg_attr(feature = "serde", serde(with = "oak_core::serde_range"))]
37 pub span: Range<usize>,
38}