mod orchestrator;
mod worker_callbacks;
mod worker_settings;
pub use orchestrator::{RemoteOrchestratorHandle, setup_remote_rendering};
pub use worker_callbacks::setup_worker_callbacks;
pub use worker_settings::refresh_remote_ui;
use crate::settings::LiveComputeTarget;
#[must_use]
pub const fn live_compute_target_from_index(index: i32) -> LiveComputeTarget {
match index {
0 => LiveComputeTarget::LocalOnly,
1 => LiveComputeTarget::RemoteOnly,
_ => LiveComputeTarget::Both,
}
}
#[must_use]
pub const fn live_compute_target_index(target: LiveComputeTarget) -> i32 {
match target {
LiveComputeTarget::LocalOnly => 0,
LiveComputeTarget::RemoteOnly => 1,
LiveComputeTarget::Both => 2,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn live_compute_target_index_and_from_index_round_trip() {
for target in [
LiveComputeTarget::LocalOnly,
LiveComputeTarget::RemoteOnly,
LiveComputeTarget::Both,
] {
let idx = live_compute_target_index(target);
assert_eq!(live_compute_target_from_index(idx), target);
}
}
#[test]
fn live_compute_target_from_index_matches_expected_pills() {
assert_eq!(
live_compute_target_from_index(0),
LiveComputeTarget::LocalOnly
);
assert_eq!(
live_compute_target_from_index(1),
LiveComputeTarget::RemoteOnly
);
assert_eq!(live_compute_target_from_index(2), LiveComputeTarget::Both);
}
#[test]
fn live_compute_target_from_index_falls_back_to_both_for_unknown_values() {
assert_eq!(live_compute_target_from_index(-1), LiveComputeTarget::Both);
assert_eq!(live_compute_target_from_index(99), LiveComputeTarget::Both);
}
}