saluki_env/host/providers/
fixed.rs

1use async_trait::async_trait;
2use saluki_core::accounting::{MemoryBounds, MemoryBoundsBuilder};
3use saluki_error::GenericError;
4
5use crate::HostProvider;
6
7/// Host provider based on a fixed hostname.
8#[derive(Clone)]
9pub struct FixedHostProvider {
10    hostname: String,
11}
12
13impl FixedHostProvider {
14    /// Creates a new `FixedHostProvider` that reports the given hostname.
15    pub fn new(hostname: String) -> Self {
16        Self { hostname }
17    }
18}
19
20#[async_trait]
21impl HostProvider for FixedHostProvider {
22    type Error = GenericError;
23
24    async fn get_hostname(&self) -> Result<String, Self::Error> {
25        Ok(self.hostname.clone())
26    }
27}
28
29impl MemoryBounds for FixedHostProvider {
30    fn specify_bounds(&self, builder: &mut MemoryBoundsBuilder) {
31        builder.minimum().with_single_value::<Self>("component struct");
32    }
33}