(
driver_name: &str,
driver_startup: compute::driver_config::DriverStartupContext<'_>,
)
| 857 | } |
| 858 | |
| 859 | fn resolve_configured_compute_driver( |
| 860 | driver_name: &str, |
| 861 | driver_startup: compute::driver_config::DriverStartupContext<'_>, |
| 862 | ) -> Result<ConfiguredComputeDriver> { |
| 863 | let name = openshell_core::config::normalize_compute_driver_name(driver_name) |
| 864 | .map_err(Error::config)?; |
| 865 | let driver_kind = builtin_compute_driver(&name); |
| 866 | if driver_kind.is_some() && driver_startup.endpoint_overrides.contains_key(&name) { |
| 867 | return Err(Error::config(format!( |
| 868 | "compute driver '{name}' is a reserved built-in driver and cannot be selected with a socket endpoint" |
| 869 | ))); |
| 870 | } |
| 871 | |
| 872 | if let Some(kind) = driver_kind { |
| 873 | return Ok(ConfiguredComputeDriver::Builtin(kind)); |
| 874 | } |
| 875 | |
| 876 | Ok(ConfiguredComputeDriver::Remote { name }) |
| 877 | } |
| 878 | |
| 879 | fn builtin_compute_driver(name: &str) -> Option<ComputeDriverKind> { |
| 880 | name.parse().ok() |
no test coverage detected