pub struct RealizeRequest {
pub term: Term,
pub result_shape: Option<Ref>,
pub required_capabilities: Vec<CapabilityName>,
pub deadline: Option<Duration>,
pub consistency: Consistency,
pub mode: EvalMode,
pub answer_limit: Option<usize>,
pub buffer_limit: Option<usize>,
pub observe: ObserveMode,
}Expand description
A reference-based realize request: the portable form of an EvalRequest.
Where EvalRequest carries an in-process Expr and live values, a
RealizeRequest carries a Term and Refs, so it can cross a
transport boundary. The two convert via
from_eval_request and
to_eval_request. See the README
section “Distributed evaluation”.
§Examples
use sim_kernel::realize::{ObserveMode, RealizeRequest};
use sim_kernel::term::Term;
use sim_kernel::Symbol;
let request = RealizeRequest::new(Term::Local(Symbol::new("x")))
.observing(ObserveMode::Events);
assert_eq!(request.observe, ObserveMode::Events);
assert!(request.required_capabilities.is_empty());Fields§
§term: TermThe term to evaluate.
result_shape: Option<Ref>Optional reference to a shape the result must satisfy.
required_capabilities: Vec<CapabilityName>Capabilities the evaluation requires.
deadline: Option<Duration>Optional wall-clock deadline for the evaluation.
consistency: ConsistencyWhere the request may be answered from.
mode: EvalModeWhich evaluation discipline to run under.
answer_limit: Option<usize>Optional cap on the number of answers (logic mode).
buffer_limit: Option<usize>Optional buffer size for streamed events.
observe: ObserveModeHow much of the evaluation to observe.
Implementations§
Source§impl RealizeRequest
impl RealizeRequest
Sourcepub fn observing(self, observe: ObserveMode) -> Self
pub fn observing(self, observe: ObserveMode) -> Self
Sets the ObserveMode, returning the request (builder style).
Sourcepub fn requiring(self, capability: CapabilityName) -> Self
pub fn requiring(self, capability: CapabilityName) -> Self
Adds a required capability, returning the request (builder style).
Sourcepub fn from_eval_request(cx: &mut Cx, request: &EvalRequest) -> Result<Self>
pub fn from_eval_request(cx: &mut Cx, request: &EvalRequest) -> Result<Self>
Builds a RealizeRequest from an in-process EvalRequest.
Live values become Refs and the Expr becomes a Term so the
request can cross a transport boundary.
Sourcepub fn to_eval_request(&self, cx: &mut Cx) -> Result<EvalRequest>
pub fn to_eval_request(&self, cx: &mut Cx) -> Result<EvalRequest>
Resolves this request back into an in-process EvalRequest.
The inverse of from_eval_request:
Term and Refs are resolved against cx into an Expr and
live values.
Trait Implementations§
Source§impl Clone for RealizeRequest
impl Clone for RealizeRequest
Source§fn clone(&self) -> RealizeRequest
fn clone(&self) -> RealizeRequest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RealizeRequest
impl Debug for RealizeRequest
impl Eq for RealizeRequest
Source§impl PartialEq for RealizeRequest
impl PartialEq for RealizeRequest
Source§fn eq(&self, other: &RealizeRequest) -> bool
fn eq(&self, other: &RealizeRequest) -> bool
self and other values to be equal, and is used by ==.