pub enum BuildpackDescriptor<BM> {
    Single(SingleBuildpackDescriptor<BM>),
    Meta(MetaBuildpackDescriptor<BM>),
}
Expand description

Data structures for the Buildpack descriptor (buildpack.toml).

For parsing of buildpack.toml files when support for multiple types of buildpack is required.

When a specific buildpack type is expected, use SingleBuildpackDescriptor or MetaBuildpackDescriptor directly instead, since it allows for more detailed error messages if parsing fails.

Example:

use libcnb_data::buildpack::BuildpackDescriptor;

let toml_str = r#"
api = "0.8"

[buildpack]
id = "foo/bar"
name = "Bar Buildpack"
version = "0.0.1"
homepage = "https://www.foo.com/bar"
clear-env = false
description = "A buildpack for Foo Bar"
keywords = ["foo"]

[[buildpack.licenses]]
type = "BSD-3-Clause"

[[stacks]]
id = "*"
"#;

let buildpack_descriptor = toml::from_str::<BuildpackDescriptor<Option<toml::value::Table>>>(toml_str).expect("buildpack.toml did not match a known type!");
match buildpack_descriptor {
    BuildpackDescriptor::Single(buildpack) => println!("Found buildpack: {}", buildpack.buildpack.id),
    BuildpackDescriptor::Meta(buildpack) => println!("Found meta-buildpack: {}", buildpack.buildpack.id),
};

Variants§

Trait Implementations§

Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.