pub struct RequiredCapabilities {
pub needs_cargo: bool,
pub needs_bun: bool,
pub needs_nix: bool,
pub needs_go: bool,
pub needs_node: bool,
pub needs_zig: bool,
pub needs_targets: Vec<String>,
pub needs_toolchains: Vec<String>,
pub needs_os: Option<String>,
pub needs_tools: Vec<String>,
}Expand description
The capabilities a command needs from a worker, as a serializable summary.
Mirrors (and converts to) CapabilityRequirement.
Fields§
§needs_cargo: bool§needs_bun: bool§needs_nix: boolWhether the command requires nix (binary + populated /nix/store).
needs_go: boolWhether the command requires the Go toolchain.
needs_node: boolWhether the command requires Node.js (e.g. tsc / npx tsc).
needs_zig: boolWhether the command requires zig + cargo-zigbuild (a zig cross-build).
This is on TOP of needs_cargo and the requested needs_targets.
needs_targets: Vec<String>rustup targets the command explicitly requests (--target <triple>).
needs_toolchains: Vec<String>Explicit toolchain overrides (cargo +nightly-…).
needs_os: Option<String>Host OS the worker must run, when a native tool or requested --target
triple implies one (e.g. xcodebuild → darwin). None for the ordinary
native build, which stays schedulable on any worker.
needs_tools: Vec<String>Operator-declared named tools the caller required (--require-tool).
Job mode only, and never derived from the command: RCH cannot know that
./run_shards.sh shells out to clang, so the requirement is something
the caller states, not something a classifier guesses.
Implementations§
Source§impl RequiredCapabilities
impl RequiredCapabilities
Sourcepub fn to_requirement(&self, min_protocol: u32) -> CapabilityRequirement
pub fn to_requirement(&self, min_protocol: u32) -> CapabilityRequirement
Convert to the admission-gate CapabilityRequirement for a given wire
protocol.
Trait Implementations§
Source§impl Clone for RequiredCapabilities
impl Clone for RequiredCapabilities
Source§impl Debug for RequiredCapabilities
impl Debug for RequiredCapabilities
Source§impl Default for RequiredCapabilities
impl Default for RequiredCapabilities
Source§impl<'de> Deserialize<'de> for RequiredCapabilities
impl<'de> Deserialize<'de> for RequiredCapabilities
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for RequiredCapabilities
Source§impl PartialEq for RequiredCapabilities
impl PartialEq for RequiredCapabilities
Source§impl Serialize for RequiredCapabilities
impl Serialize for RequiredCapabilities
impl StructuralPartialEq for RequiredCapabilities
Auto Trait Implementations§
impl Freeze for RequiredCapabilities
impl RefUnwindSafe for RequiredCapabilities
impl Send for RequiredCapabilities
impl Sync for RequiredCapabilities
impl Unpin for RequiredCapabilities
impl UnsafeUnpin for RequiredCapabilities
impl UnwindSafe for RequiredCapabilities
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.