lmrc_toml_writer/lib.rs
1//! Type-safe TOML generation for Cargo.toml files
2//!
3//! This library provides builder APIs for generating valid Cargo.toml files
4//! programmatically, avoiding error-prone string concatenation.
5//!
6//! # Examples
7//!
8//! ## Workspace Cargo.toml
9//!
10//! ```rust
11//! use lmrc_toml_writer::WorkspaceToml;
12//!
13//! let toml = WorkspaceToml::new()
14//! .resolver("2")
15//! .members(vec!["apps/api", "apps/web", "infra/pipeline"])
16//! .workspace_version("0.1.0")
17//! .workspace_edition("2021")
18//! .workspace_authors(vec!["Team Name"])
19//! .dependency("tokio", r#"{ version = "1.0", features = ["full"] }"#)
20//! .dependency("serde", r#"{ version = "1.0", features = ["derive"] }"#)
21//! .build();
22//!
23//! println!("{}", toml);
24//! ```
25//!
26//! ## Package Cargo.toml
27//!
28//! ```rust
29//! use lmrc_toml_writer::PackageToml;
30//!
31//! let toml = PackageToml::new("my-app")
32//! .version("0.1.0")
33//! .edition("2021")
34//! .bin("my-app", "src/main.rs")
35//! .workspace_dependency("tokio")
36//! .dependency("reqwest", "0.11")
37//! .build();
38//!
39//! println!("{}", toml);
40//! ```
41
42mod error;
43mod package;
44mod workspace;
45
46pub use error::{Error, Result};
47pub use package::PackageToml;
48pub use workspace::WorkspaceToml;