@@ -4,7 +4,7 @@ use std::{collections::HashSet, path::Path, str::FromStr};
44
55use anyhow:: { Context , Result } ;
66use semver:: { Version , VersionReq } ;
7- use wasm_metadata:: AddMetadata ;
7+ use wasm_metadata:: { AddMetadata , AddMetadataField } ;
88use wasm_pkg_client:: {
99 caching:: { CachingClient , FileCache } ,
1010 PackageRef ,
@@ -83,20 +83,25 @@ pub async fn build_package(
8383 let processed_by_version = option_env ! ( "WIT_VERSION_INFO" ) . unwrap_or ( env ! ( "CARGO_PKG_VERSION" ) ) ;
8484
8585 let metadata = config. metadata . clone ( ) . unwrap_or_default ( ) ;
86- let add_metadata = AddMetadata {
87- name : Some ( format ! ( "{}:{}" , pkg. name. namespace, pkg. name. name) ) ,
88- processed_by : vec ! [ (
86+ let add_metadata = {
87+ /// MetadataField::Set iff the given Option is Some
88+ fn set < T : std:: fmt:: Debug + Clone > ( opt : Option < T > ) -> AddMetadataField < T > {
89+ opt. map ( AddMetadataField :: Set ) . unwrap_or_default ( )
90+ }
91+ let mut add = AddMetadata :: default ( ) ;
92+ add. name = set ( Some ( format ! ( "{}:{}" , pkg. name. namespace, pkg. name. name) ) ) ;
93+ add. processed_by = vec ! [ (
8994 env!( "CARGO_PKG_NAME" ) . to_string( ) ,
9095 processed_by_version. to_string( ) ,
91- ) ] ,
92- authors : metadata. authors . map ( |v| v. parse ( ) ) . transpose ( ) ?,
93- description : metadata. description . map ( |v| v. parse ( ) ) . transpose ( ) ?,
94- licenses : metadata. licenses . map ( |v| v. parse ( ) ) . transpose ( ) ?,
95- source : metadata. source . map ( |v| v. parse ( ) ) . transpose ( ) ?,
96- homepage : metadata. homepage . map ( |v| v. parse ( ) ) . transpose ( ) ?,
97- revision : metadata. revision . map ( |v| v. parse ( ) ) . transpose ( ) ?,
98- version,
99- .. Default :: default ( )
96+ ) ] ;
97+ add . authors = set ( metadata. authors . map ( |v| v. parse ( ) ) . transpose ( ) ?) ;
98+ add . description = set ( metadata. description . map ( |v| v. parse ( ) ) . transpose ( ) ?) ;
99+ add . licenses = set ( metadata. licenses . map ( |v| v. parse ( ) ) . transpose ( ) ?) ;
100+ add . source = set ( metadata. source . map ( |v| v. parse ( ) ) . transpose ( ) ?) ;
101+ add . homepage = set ( metadata. homepage . map ( |v| v. parse ( ) ) . transpose ( ) ?) ;
102+ add . revision = set ( metadata. revision . map ( |v| v. parse ( ) ) . transpose ( ) ?) ;
103+ add . version = set ( version ) ;
104+ add
100105 } ;
101106 let bytes = add_metadata. to_wasm ( & bytes) ?;
102107
0 commit comments