pub enum CompileError {
UnknownKind(AgentKind),
InvalidSpec {
name: String,
msg: String,
},
UnresolvedRef(String),
DuplicateAgent(String),
UnresolvedOperatorRef {
agent: String,
op_ref: String,
defined: Vec<String>,
},
UnresolvedMetaRef {
where_: String,
meta_ref: String,
defined: Vec<String>,
},
StepNamingCollision(StepNamingError),
InvalidProjectionPlacement(ProjectionPlacementError),
}Expand description
Everything that can go wrong while Compiler::compile turns a
Blueprint into a CompiledBlueprint.
Variants§
UnknownKind(AgentKind)
An AgentDef.kind has no matching entry in the SpawnerRegistry
and Blueprint.strategy.strict_kind is set.
InvalidSpec
The AgentDef.spec shape did not match what the factory for its
kind requires (missing/mistyped field, etc.).
Fields
UnresolvedRef(String)
The flow references an agent name that has no corresponding
AgentDef (and no default spawner is configured).
DuplicateAgent(String)
Two AgentDefs in the same Blueprint share a name.
UnresolvedOperatorRef
A kind = Operator agent’s spec.operator_ref does not match
any OperatorDef.name declared in Blueprint.operators.
Fields
UnresolvedMetaRef
GH #21 Phase 2: an AgentMeta.meta_ref or a statically-visible
$step_meta.ref (inside a Step.in Lit expr) does not match
any MetaDef.name declared in Blueprint.metas.
Fields
StepNamingCollision(StepNamingError)
GH #23: two Steps’ canonical/alias projection names collide and at
least one side declared AgentMeta.projection_name — see
crate::core::step_naming::StepNaming::from_blueprint’s doc for
the full resolution rule (an undeclared/undeclared clash is a soft
warning instead, logged but not rejected).
InvalidProjectionPlacement(ProjectionPlacementError)
GH #27 (follow-up to #23): Blueprint.projection_placement failed
validation — see
crate::core::projection_placement::ProjectionPlacement::from_spec’s
doc for the rejection rules (dir_template empty / missing the
{task_id} placeholder / absolute / containing a .. segment, or
root not "work_dir"/"project_root").
Trait Implementations§
Source§impl Debug for CompileError
impl Debug for CompileError
Source§impl Display for CompileError
impl Display for CompileError
Source§impl Error for CompileError
impl Error for CompileError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<CompileError> for TaskLaunchError
impl From<CompileError> for TaskLaunchError
Source§fn from(source: CompileError) -> Self
fn from(source: CompileError) -> Self
Source§impl From<ProjectionPlacementError> for CompileError
impl From<ProjectionPlacementError> for CompileError
Source§fn from(source: ProjectionPlacementError) -> Self
fn from(source: ProjectionPlacementError) -> Self
Source§impl From<StepNamingError> for CompileError
impl From<StepNamingError> for CompileError
Source§fn from(source: StepNamingError) -> Self
fn from(source: StepNamingError) -> Self
Auto Trait Implementations§
impl Freeze for CompileError
impl RefUnwindSafe for CompileError
impl Send for CompileError
impl Sync for CompileError
impl Unpin for CompileError
impl UnsafeUnpin for CompileError
impl UnwindSafe for CompileError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<E> ExternalError for E
impl<E> ExternalError for E
fn into_lua_err(self) -> Error
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more