MCPcopy Create free account
hub / github.com/It4innovations/hyperqueue / parse_ref

Method parse_ref

crates/hyperqueue/src/client/commands/worker.rs:169–198  ·  view source on GitHub ↗
(
        &self,
        cmd: &clap::Command,
        _arg: Option<&Arg>,
        value: &OsStr,
    )

Source from the content-addressed store, hash-verified

167 type Value = ResourceDetectComponents;
168
169 fn parse_ref(
170 &self,
171 cmd: &clap::Command,
172 _arg: Option<&Arg>,
173 value: &OsStr,
174 ) -> Result<Self::Value, Error> {
175 let value = value.to_string_lossy();
176 let value = value.as_ref();
177 match value {
178 "all" => Ok(ResourceDetectComponents::All),
179 "none" => Ok(ResourceDetectComponents::None),
180 values => {
181 let mut parsed = HashSet::new();
182 for value in values.split(",") {
183 match ResourceDetectComponent::from_str(value, false) {
184 Ok(component) => {
185 parsed.insert(component);
186 }
187 Err(error) => {
188 let error = Error::raw(ErrorKind::InvalidValue, error);
189 return Err(error.format(&mut cmd.clone()));
190 }
191 }
192 }
193 let mut parsed = parsed.into_iter().collect::<Vec<_>>();
194 parsed.sort();
195 Ok(ResourceDetectComponents::Selected(parsed))
196 }
197 }
198 }
199
200 fn possible_values(&self) -> Option<Box<dyn Iterator<Item = PossibleValue> + '_>> {
201 let values = ResourceDetectComponent::value_variants()

Callers

nothing calls this directly

Calls 7

as_refMethod · 0.80
sortMethod · 0.80
splitMethod · 0.45
insertMethod · 0.45
formatMethod · 0.45
cloneMethod · 0.45
into_iterMethod · 0.45

Tested by

no test coverage detected