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