use alloc::{borrow::ToOwned, string::String};
#[derive(Clone, Default, Debug)]
pub struct BuildInfoAbi {
pub rustc: Option<RustcAbi>,
pub contract_crate: ContractCrateBuildAbi,
pub framework: FrameworkBuildAbi,
}
#[derive(Clone, Default, Debug)]
pub struct RustcAbi {
pub version: String,
pub commit_hash: String,
pub commit_date: String,
pub build_date: Option<String>,
pub channel: String,
pub host: String,
pub short: String,
pub llvm_version: Option<String>,
}
#[derive(Clone, Default, Debug)]
pub struct ContractCrateBuildAbi {
pub name: String,
pub version: String,
pub git_version: String,
}
impl ContractCrateBuildAbi {
pub fn new(name: &str, version: &str) -> Self {
ContractCrateBuildAbi {
name: name.to_owned(),
version: version.to_owned(),
git_version: String::new(),
}
}
}
#[derive(Clone, Default, Debug)]
pub struct FrameworkBuildAbi {
pub name: String,
pub version: String,
}
impl FrameworkBuildAbi {
pub fn create() -> Self {
FrameworkBuildAbi {
name: env!("CARGO_PKG_NAME").to_owned(),
version: env!("CARGO_PKG_VERSION").to_owned(),
}
}
}