pub struct Worker {
pub kind: String,
pub version: String,
pub metadata: Metadata,
pub spec: WorkerSpec,
pub status: Option<WorkerStatus>,
}
Expand description
Represents a complete worker definition with metadata, specification and status
§Examples
Creating a basic worker:
use crate::models::Worker;
CoreUnit
let worker = serde_json::from_str::<Worker>(r#"{
"kind": "Worker",
"version": "v0",
"metadata": {
"name": "worker-1",
"tags": ["compute"]
},
"spec": {
"cpus": "8 cores",
"gpus": "1 gpu",
"memory": "16 GiB",
"disk": "100 GiB"
}
}"#).unwrap();
Converting from protobuf:
use crate::proto::gevulot::gevulot;
use crate::models::Worker;
let proto_worker = gevulot::Worker {
metadata: Some(gevulot::Metadata {
name: "worker-1".to_string(),
..Default::default()
}),
spec: Some(gevulot::WorkerSpec {
cpus: 8,
gpus: 1,
memory: 16000000000,
disk: 100000000000,
}),
..Default::default()
};
let worker = Worker::from(proto_worker);
Fields§
§kind: String
§version: String
§metadata: Metadata
§spec: WorkerSpec
§status: Option<WorkerStatus>
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Worker
impl<'de> Deserialize<'de> for Worker
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Worker
impl RefUnwindSafe for Worker
impl Send for Worker
impl Sync for Worker
impl Unpin for Worker
impl UnwindSafe for Worker
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
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request