#![doc = include_str!("../README.md")]
#![warn(clippy::pedantic)]
#![warn(unused_crate_dependencies)]
#![allow(clippy::missing_errors_doc)]
#![allow(clippy::module_name_repetitions)]
pub mod build;
pub mod detect;
pub mod exec_d;
pub mod generic;
pub mod layer;
pub mod layer_env;
pub mod sbom;
#[doc(hidden)]
pub mod internals;
mod buildpack;
mod env;
mod error;
mod exit_code;
mod platform;
mod runtime;
mod toml_file;
mod util;
pub use buildpack::Buildpack;
pub use env::*;
pub use error::*;
pub use platform::*;
pub use runtime::*;
pub use toml_file::*;
#[doc(inline)]
pub use libcnb_data as data;
const LIBCNB_SUPPORTED_BUILDPACK_API: data::buildpack::BuildpackApi =
data::buildpack::BuildpackApi { major: 0, minor: 8 };
#[macro_export]
macro_rules! buildpack_main {
($buildpack:expr) => {
fn main() {
::libcnb::libcnb_runtime(&$buildpack);
}
};
}
#[macro_export]
macro_rules! additional_buildpack_binary_path {
($target_name:expr) => {
::libcnb::internals::verify_bin_target_exists!(
$target_name,
{
::std::env::var("CNB_BUILDPACK_DIR")
.map(::std::path::PathBuf::from)
.expect("Could not read CNB_BUILDPACK_DIR environment variable")
.join(".libcnb-cargo")
.join("additional-bin")
.join($target_name)
},
{
compile_error!(concat!(
$target_name,
" is not a valid binary target in this buildpack crate!"
))
}
)
};
}