summaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index a9d9264..83c53b9 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -645,6 +645,25 @@ impl<'docker> Containers<'docker> {
Container::new(self.docker, name)
}
+ /// Same as `Container::get()`, but checks whether the container exists and returns None if it
+ /// doesn't
+ pub async fn get_checked<S>(
+ &self,
+ name: S,
+ ) -> Result<Option<Container<'docker>>>
+ where
+ S: AsRef<str>,
+ {
+ let listopts = ContainerListOptions::builder().all().build();
+ self.list(&listopts)
+ .await?
+ .into_iter()
+ .find(|rep| rep.id == name.as_ref())
+ .map(|rep| Container::new(self.docker, rep.id))
+ .map(Ok)
+ .transpose()
+ }
+
/// Returns a builder interface for creating a new container instance
pub async fn create(
&self,