1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! This is the library for MCVM and pretty much all of the features that the
//! CLI uses.
//!
//! Note: The asynchronous functions in this library expect the use of the Tokio runtime and may panic
//! if it is not used
//!
//! # Features
//!
//! - `arc`: MCVM uses Rc's in a couple places. Although these are more performant than Arc's, they
//! may not be compatible with some async runtimes. With this feature enabled, these Rc's will be replaced with
//! Arc's where possible.
//! - `builder`: Enable or disable the config builder system, which isn't needed if you are just deserializing the standard config.
//! - `disable_profile_update_packages`: A workaround for `https://github.com/rust-lang/rust/issues/102211`. If you are
//! getting higher-ranked lifetime errors when running the update_profiles function, try enabling this. When enabled, the
//! update_profiles function will no longer update packages at all.
//! - `schema`: Enable generation of JSON schemas using the `schemars` crate
pub use mcvm_core as core;
pub use mcvm_net as net_crate;
pub use mcvm_parse as parse;
pub use mcvm_pkg as pkg_crate;
pub use mcvm_plugin as plugin_crate;
pub use mcvm_shared as shared;
/// Installable addons
/// MCVM configuration
/// Launchable instances
/// File and data format input / output
/// Dealing with packages
/// Plugin-related things, like loading, configuration, and management/installation
/// Configuration profiles for instances
/// Common utilities that can't live anywhere else
/// The global struct used as an Rc, depending on the `arc` feature
pub type RcType<T> = Arc;
/// The global struct used as an Rc, depending on the `arc` feature
pub type RcType<T> = Rc;
/// The version of MCVM
pub const VERSION: &str = env!;