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)]
7#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
8pub struct IniRoot {
9 pub sections: Vec<Section>,
10 pub properties: Vec<Property>,
11}
12
13#[derive(Clone, Debug, PartialEq, Eq, Hash)]
14#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
15pub struct Section {
16 pub name: String,
17 pub properties: Vec<Property>,
18 #[cfg_attr(feature = "serde", serde(with = "oak_core::serde_range"))]
19 pub span: Range<usize>,
20}
21
22#[derive(Clone, Debug, PartialEq, Eq, Hash)]
23#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
24pub struct Property {
25 pub key: String,
26 pub value: String,
27 #[cfg_attr(feature = "serde", serde(with = "oak_core::serde_range"))]
28 pub span: Range<usize>,
29}