oci_spec/distribution/
repository.rs

1//! Repository types of the distribution spec.
2
3use 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")]
15/// RepositoryList returns a catalog of repositories maintained on the registry.
16pub struct RepositoryList {
17    /// The items of the RepositoryList.
18    repositories: Vec<String>,
19}
20
21#[cfg(test)]
22mod tests {
23    use super::*;
24    use crate::error::Result;
25
26    #[test]
27    fn repository_list_success() -> Result<()> {
28        let list = RepositoryListBuilder::default()
29            .repositories(vec![])
30            .build()?;
31        assert!(list.repositories().is_empty());
32        Ok(())
33    }
34
35    #[test]
36    fn repository_list_failure() {
37        assert!(RepositoryListBuilder::default().build().is_err());
38    }
39}