use crate::composer::types::{ComposerResult, VolumeMapping};
use std::path::Path;
pub struct VolumesParser;
#[derive(Debug, Clone)]
pub struct ParsedVolume {
pub source: String,
pub target: String,
pub volume_type: VolumeType,
pub read_only: bool,
}
#[derive(Debug, Clone, PartialEq)]
pub enum VolumeType {
Named,
Bind,
Tmpfs,
}
impl VolumesParser {
pub fn parse_volumes(
volumes: &[VolumeMapping],
_project_dir: &Path,
) -> ComposerResult<Vec<VolumeMapping>> {
Ok(volumes.to_vec())
}
pub fn get_required_local_paths(volumes: &[ParsedVolume]) -> Vec<String> {
volumes
.iter()
.filter(|v| v.volume_type == VolumeType::Bind)
.map(|v| v.source.clone())
.collect()
}
pub fn get_named_volumes(volumes: &[ParsedVolume]) -> Vec<String> {
volumes
.iter()
.filter(|v| v.volume_type == VolumeType::Named)
.map(|v| v.source.clone())
.collect()
}
}