guix-scheme 0.1.0

Read, edit, and generate Guix Scheme files (channels.scm, system config.scm) from Rust
Documentation
//! Read, edit, and generate Guix Scheme files (channels.scm, system config.scm) from Rust.
//!
//! ```
//! use guix_scheme::{Channel, ChannelsFile};
//! let mut cf = ChannelsFile::parse("(list)").unwrap();
//! cf.add_channel(&Channel {
//!     name: "pantherx".into(),
//!     url: "https://codeberg.org/gofranz/panther.git".into(),
//!     branch: Some("master".into()),
//!     commit: None,
//!     introduction_commit: Some("54b4056ac571611892c743b65f4c47dc298c49da".into()),
//!     introduction_fingerprint: Some("A36A D41E ECC7 A871 1003  5D24 524F EB1A 9D33 C9CB".into()),
//! }).unwrap();
//! assert!(cf.to_string().contains("(name 'pantherx)"));
//! ```

mod channel;
mod channels_file;
mod error;
#[cfg(feature = "guile-check")]
pub mod guile_check;
pub mod module;
pub mod os_builder;
pub mod record;
pub mod services;
pub mod validate;

pub use channel::Channel;
pub use channels_file::{ChannelsFile, ChannelsShape};
pub use error::Error;
pub use module::{ModuleFile, PackageView, PackageViewMut, RecordFieldView, RecordTypeView};
pub use services::{ServicesView, ServicesViewMut};