wasm_metadata/metadata.rs
1use serde_derive::Serialize;
2use std::ops::Range;
3
4use crate::{Authors, Description, Homepage, Licenses, Producers, Revision, Source, Version};
5
6/// Metadata associated with a Wasm Component or Module
7#[derive(Debug, Serialize, Default)]
8#[serde(rename_all = "lowercase")]
9pub struct Metadata {
10 /// The component name, if any. Found in the component-name section.
11 pub name: Option<String>,
12 /// The component's producers section, if any.
13 pub producers: Option<Producers>,
14 /// The component's authors section, if any.
15 pub authors: Option<Authors>,
16 /// Human-readable description of the binary
17 pub description: Option<Description>,
18 /// License(s) under which contained software is distributed as an SPDX License Expression.
19 pub licenses: Option<Licenses>,
20 /// URL to get source code for building the image
21 pub source: Option<Source>,
22 /// URL to find more information on the binary
23 pub homepage: Option<Homepage>,
24 /// Source control revision identifier for the packaged software.
25 pub revision: Option<Revision>,
26 /// Version of the packaged software
27 pub version: Option<Version>,
28 /// Byte range of the module in the parent binary
29 pub range: Range<usize>,
30}