extending engine capabilities (#14528)

Co-authored-by: steven <corderosteven6@gmail.com>
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
Harrish Bansal
2025-02-17 17:55:57 +05:30
committed by GitHub
parent d6738c5044
commit 7fbeccca57

View File

@ -29,6 +29,11 @@ pub struct EngineCapabilities {
}
impl EngineCapabilities {
/// Creates a new `EngineCapabilities` instance with the given capabilities.
pub fn new(capabilities: impl IntoIterator<Item = impl Into<String>>) -> Self {
Self { inner: capabilities.into_iter().map(Into::into).collect() }
}
/// Returns the list of all supported Engine capabilities for Prague spec.
fn prague() -> Self {
Self { inner: CAPABILITIES.iter().copied().map(str::to_owned).collect() }
@ -38,6 +43,16 @@ impl EngineCapabilities {
pub fn list(&self) -> Vec<String> {
self.inner.iter().cloned().collect()
}
/// Inserts a new capability.
pub fn add_capability(&mut self, capability: impl Into<String>) {
self.inner.insert(capability.into());
}
/// Removes a capability.
pub fn remove_capability(&mut self, capability: &str) -> Option<String> {
self.inner.take(capability)
}
}
impl Default for EngineCapabilities {