pub enum HandlerIntent {
Link {
pack: String,
handler: String,
source: PathBuf,
user_path: PathBuf,
},
Stage {
pack: String,
handler: String,
source: PathBuf,
},
Run {
pack: String,
handler: String,
executable: String,
arguments: Vec<String>,
sentinel: String,
},
}Expand description
Higher-level intent produced by handlers.
Handlers declare what they want, not how to do it. The executor
converts intents into Operations and DataStore calls.
This avoids the awkward pattern where CreateUserLink would need a
placeholder datastore path that the executor fills later — instead
Link carries the full intent and the executor splits it into two
atomic operations.
Variants§
Link
Symlink handler: create both legs of the double-link. Executor splits this into CreateDataLink + CreateUserLink.
Stage
Shell/path handlers: stage a file in the datastore. Shell init reads it from there.
Run
Install/homebrew handlers: run a command with sentinel tracking.
Implementations§
Trait Implementations§
Source§impl Clone for HandlerIntent
impl Clone for HandlerIntent
Source§fn clone(&self) -> HandlerIntent
fn clone(&self) -> HandlerIntent
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HandlerIntent
impl Debug for HandlerIntent
Auto Trait Implementations§
impl Freeze for HandlerIntent
impl RefUnwindSafe for HandlerIntent
impl Send for HandlerIntent
impl Sync for HandlerIntent
impl Unpin for HandlerIntent
impl UnsafeUnpin for HandlerIntent
impl UnwindSafe for HandlerIntent
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