Compare commits

..

2 commits

Author SHA1 Message Date
92d7f6acc4 get cargo fmt'ed 2024-11-23 15:21:07 +00:00
55634e9f77 remove some spaces from cargo.toml 2024-11-23 15:20:34 +00:00
2 changed files with 101 additions and 101 deletions

View file

@ -9,4 +9,4 @@ version = "0.4.0"
edition = "2021" edition = "2021"
[dependencies] [dependencies]
serde={ version = "1.0.215", features = ["derive"] } serde={version = "1.0.215", features = ["derive"]}

View file

@ -1,4 +1,4 @@
use serde::{Serialize,Deserialize}; use serde::{Deserialize, Serialize};
use std::collections::HashMap; use std::collections::HashMap;
/// The root object. /// The root object.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)] #[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
@ -12,107 +12,107 @@ pub struct Mcmeta {
/// (optional) Section for specifying the overlays, which are sub-packs applied over the "normal" contents of a pack. /// (optional) Section for specifying the overlays, which are sub-packs applied over the "normal" contents of a pack.
pub overlays: Option<McmetaOverlays>, pub overlays: Option<McmetaOverlays>,
/// (optional) Only present in resource packs — Contains additional languages to add to the language menu. /// (optional) Only present in resource packs — Contains additional languages to add to the language menu.
pub language: Option<HashMap<String,McmetaLanguage>> pub language: Option<HashMap<String, McmetaLanguage>>,
}
/// Holds the pack information.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaPack {
/// A raw JSON text that appears when hovering over the pack's name in the list given by the `/datapack list` command, or when viewing the pack in the Create World screen.
pub description: Vec<McmetaPackDescription>,
/// Determines the version(s) of Minecraft that this pack is compatible with.
///
/// See <https://minecraft.wiki/w/Pack_format> for a full list of pack format numbers.
pub pack_format: u8,
/// (optional) Describes a range for pack formats that this pack supports.
///
/// The range has to include the value of [`McmetaPack::pack_format`].
pub supported_formats: Option<McmetaPackSupportedformats>,
}
/// Determines the version(s) of Minecraft that this pack is compatible with.
///
/// See <https://minecraft.wiki/w/Pack_format> for a full list of pack format numbers.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaPackDescription {
/// The text in the description.
pub text: String,
/// The colour of the text in the description.
pub color: Option<String>,
}
/// (optional) Describes a range for pack formats that this pack supports.
///
/// The range has to include the value of [`McmetaPack::pack_format`].
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaPackSupportedformats {
/// Minimum Pack format number
pub min_inclusive: u8,
/// Maximum pack format number
pub max_inclusive: u8,
} }
/// Holds the pack information.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaPack {
/// A raw JSON text that appears when hovering over the pack's name in the list given by the `/datapack list` command, or when viewing the pack in the Create World screen.
pub description: Vec<McmetaPackDescription>,
/// Determines the version(s) of Minecraft that this pack is compatible with.
///
/// See <https://minecraft.wiki/w/Pack_format> for a full list of pack format numbers.
pub pack_format: u8,
/// (optional) Describes a range for pack formats that this pack supports.
///
/// The range has to include the value of [`McmetaPack::pack_format`].
pub supported_formats: Option<McmetaPackSupportedformats>
}
/// Determines the version(s) of Minecraft that this pack is compatible with.
///
/// See <https://minecraft.wiki/w/Pack_format> for a full list of pack format numbers.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaPackDescription {
/// The text in the description.
pub text: String,
/// The colour of the text in the description.
pub color: Option<String>
}
/// (optional) Describes a range for pack formats that this pack supports.
///
/// The range has to include the value of [`McmetaPack::pack_format`].
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaPackSupportedformats {
/// Minimum Pack format number
pub min_inclusive: u8,
/// Maximum pack format number
pub max_inclusive: u8
}
// I don't what this looks like // I don't what this looks like
/// (optional) Section for selecting experimental features. /// (optional) Section for selecting experimental features.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)] #[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaFeatures { pub struct McmetaFeatures {
/// List of enabled feature flags. /// List of enabled feature flags.
/// ///
/// Each item in the Vec is a location of a feature flag. /// Each item in the Vec is a location of a feature flag.
pub enabled: Vec<String> pub enabled: Vec<String>,
} }
// I don't what this looks like // I don't what this looks like
/// (optional) Section for filtering out files from packs applied below this one. /// (optional) Section for filtering out files from packs applied below this one.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)] #[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaFilter { pub struct McmetaFilter {
/// Vector of patterns. /// Vector of patterns.
/// ///
/// Any file that matches one of the patterns inside [`McmetaFilter::block`] is treated as if it was not present in the pack at all. /// Any file that matches one of the patterns inside [`McmetaFilter::block`] is treated as if it was not present in the pack at all.
pub block: Vec<McmetaFilterBlock> pub block: Vec<McmetaFilterBlock>,
} }
/// A pattern. /// A pattern.
/// ///
/// Any file that matches one of the patterns inside here is treated as if it was not present in the pack at all. /// Any file that matches one of the patterns inside here is treated as if it was not present in the pack at all.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)] #[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaFilterBlock { pub struct McmetaFilterBlock {
/// A regular expression for the namespace of files to be filtered out. If unspecified, it applies to every namespace. /// A regular expression for the namespace of files to be filtered out. If unspecified, it applies to every namespace.
pub namespace: String, pub namespace: String,
/// A regular expression for the paths of files to be filtered out. If unspecified, it applies to every file. /// A regular expression for the paths of files to be filtered out. If unspecified, it applies to every file.
pub path: String pub path: String,
} }
// I don't what this looks like // I don't what this looks like
/// (optional) Section for specifying the overlays, which are sub-packs applied over the "normal" contents of a pack. /// (optional) Section for specifying the overlays, which are sub-packs applied over the "normal" contents of a pack.
/// ///
/// Their directories have their own assets and data directories, and are placed in the pack's root directory. /// Their directories have their own assets and data directories, and are placed in the pack's root directory.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)] #[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaOverlays { pub struct McmetaOverlays {
/// Vector of overlays. The order is important, as the first in the list is applied first. /// Vector of overlays. The order is important, as the first in the list is applied first.
pub entries: Vec<McmetaOverlaysEntries> pub entries: Vec<McmetaOverlaysEntries>,
} }
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)] #[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
/// An overlay. /// An overlay.
pub struct McmetaOverlaysEntries { pub struct McmetaOverlaysEntries {
/// Describes a range for pack formats when this overlay should be active. /// Describes a range for pack formats when this overlay should be active.
pub formats: McmetaOverlaysEntriesFormats, pub formats: McmetaOverlaysEntriesFormats,
/// The directory to overlay for the respective versions (allowed characters: a-z, 0-9, _ and -). In this directory, pack.mcmeta and pack.png are ignored. /// The directory to overlay for the respective versions (allowed characters: a-z, 0-9, _ and -). In this directory, pack.mcmeta and pack.png are ignored.
pub directory: String pub directory: String,
} }
/// Describes a range for pack formats when this overlay should be active. /// Describes a range for pack formats when this overlay should be active.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)] #[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaOverlaysEntriesFormats { pub struct McmetaOverlaysEntriesFormats {
/// Minimum Pack format number. /// Minimum Pack format number.
pub min_inclusive: u8, pub min_inclusive: u8,
/// Maximum Pack format number. /// Maximum Pack format number.
pub max_inclusive: u8 pub max_inclusive: u8,
} }
// I don't what this looks like // I don't what this looks like
/// (optional) Only present in resource packs — Contains additional languages to add to the language menu. /// (optional) Only present in resource packs — Contains additional languages to add to the language menu.
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)] #[derive(Serialize, Deserialize, Eq, PartialEq, Debug, Clone)]
pub struct McmetaLanguage { pub struct McmetaLanguage {
/// The full name of the language /// The full name of the language
pub name: String, pub name: String,
/// The country or region name /// The country or region name
pub region: String, pub region: String,
/// If true, the language reads right to left. /// If true, the language reads right to left.
pub bidirectional: bool pub bidirectional: bool,
} }