diff --git a/src/metadata/message.rs b/src/metadata/message.rs index 55d424d5..ea176358 100644 --- a/src/metadata/message.rs +++ b/src/metadata/message.rs @@ -263,7 +263,7 @@ pub(crate) fn parse_message_contents_yaml( key: &'static str, parent_yaml_type: YamlObjectType, ) -> Result, ParseMetadataError> { - let contents = match &value.data { + let mut contents = match &value.data { YamlData::String(s) => { vec![MessageContent::new(s.clone())] } @@ -281,6 +281,8 @@ pub(crate) fn parse_message_contents_yaml( } }; + contents.shrink_to_fit(); + if validate_message_contents(&contents).is_err() { Err(ParseMetadataError::new( value.span.start, diff --git a/src/metadata/plugin_metadata.rs b/src/metadata/plugin_metadata.rs index 880f4b04..38316265 100644 --- a/src/metadata/plugin_metadata.rs +++ b/src/metadata/plugin_metadata.rs @@ -377,10 +377,14 @@ fn get_vec<'a, T: TryFrom<&'a MarkedYaml, Error = impl Into> hash: &'a saphyr::AnnotatedHash, key: &'static str, ) -> Result, ParseMetadataError> { - get_as_slice(hash, key, YamlObjectType::PluginMetadata)? + let mut vec = get_as_slice(hash, key, YamlObjectType::PluginMetadata)? .iter() .map(|e| T::try_from(e).map_err(Into::into)) - .collect::, _>>() + .collect::, _>>()?; + + vec.shrink_to_fit(); + + Ok(vec) } impl EmitYaml for PluginMetadata {