From 77d4a752b6604f7b55be193f6dec286c893cfd80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= Date: Thu, 5 May 2022 10:58:26 +0200 Subject: [PATCH] api: add DatastoreWithNamespace helper struct MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fabian Grünbichler Signed-off-by: Thomas Lamprecht --- pbs-api-types/src/datastore.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs index a6d6f625..6d846ae8 100644 --- a/pbs-api-types/src/datastore.rs +++ b/pbs-api-types/src/datastore.rs @@ -1054,6 +1054,22 @@ impl fmt::Display for BackupDir { } } +/// Helper struct for places where sensible formatting of store+NS combo is required +pub struct DatastoreWithNamespace { + pub store: String, + pub ns: BackupNamespace, +} + +impl fmt::Display for DatastoreWithNamespace { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + if self.ns.is_root() { + write!(f, "{}", self.store) + } else { + write!(f, "{}/{}", self.store, self.ns) + } + } +} + /// Used when both a backup group or a directory can be valid. pub enum BackupPart { Group(BackupGroup),