oci_spec/distribution/
tag.rs1use crate::error::OciSpecError;
4use derive_builder::Builder;
5use getset::{Getters, Setters};
6use serde::{Deserialize, Serialize};
7
8#[derive(Builder, Clone, Debug, Deserialize, Eq, Getters, Setters, PartialEq, Serialize)]
9#[builder(
10 pattern = "owned",
11 setter(into, strip_option),
12 build_fn(error = "OciSpecError")
13)]
14#[getset(get = "pub", set = "pub")]
15pub struct TagList {
17 name: String,
19
20 tags: Vec<String>,
22}
23
24#[cfg(test)]
25mod tests {
26 use super::*;
27 use crate::error::Result;
28
29 #[test]
30 fn tag_list_success() -> Result<()> {
31 let list = TagListBuilder::default()
32 .name("name")
33 .tags(vec![])
34 .build()?;
35 assert!(list.tags().is_empty());
36 assert_eq!(list.name(), "name");
37 Ok(())
38 }
39
40 #[test]
41 fn tag_list_failure() {
42 assert!(TagListBuilder::default().build().is_err());
43 }
44}