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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
#![feature(arbitrary_self_types, decl_macro, proc_macro_hygiene)] //! # Rocket-Config - Core API Documentation //! //! Hello, and welcome to the core Rocket-Config API documentation! //! //! Rocket-Config is a Rust library providing a plugin for [Rocket] loading and //! managing configuration files for [Rocket]. //! //! It allows two configuration file formats: [YAML] and [JSON]. //! Deserialization is done using [serde] and specialized packages [serde_json] //! and [serde_yaml]. //! //! # Libraries //! //! Rocket-Config's functionality is split into two crates: //! //! 1. Core - This core library. Needed by every Rocket application using //! rocket-config. //! 2. [Codegen] - Provides useful code generation functionality for many //! Rocket applications. Completely optional. //! //! ## Usage //! //! First, depend on `rocket-config` in `Cargo.toml`: //! //! ```toml //! [dependencies] //! rocket-config = "0.0.1" //! ``` //! //! Then, add the following to the top of your `main.rs` file: //! //! ```rust //! #![feature(proc_macro_hygiene, decl_macro)] //! //! #[macro_use] extern crate rocket_config; //! //! // ... //! ``` //! //! [Codegen]: ../rocket_config_codegen/index.html //! [JSON]: http://json.org //! [Rocket]: https://rocket.rs/ //! [serde]: https://serde.rs/ //! [serde_json]: https://docs.serde.rs/serde_json/ //! [serde_yaml]: https://docs.serde.rs/serde_yaml/ //! [YAML]: http://yaml.org #![warn(rust_2018_idioms)] #[allow(unused_imports)] #[macro_use] extern crate rocket_config_codegen; #[doc(hidden)] pub use rocket_config_codegen::*; #[macro_use] extern crate lazy_static; #[cfg(test)] #[macro_use] extern crate serde_json; #[cfg(test)] extern crate tempfile; mod configuration; mod constants; pub mod error; mod factory; mod result; mod value; pub use configuration::Configuration; pub use factory::Factory; pub use result::Result; pub use value::*;