pub enum Effect {
HttpGet {
id: u32,
url: String,
headers: Vec<(String, String)>,
},
HttpPost {
id: u32,
url: String,
body: String,
content_type: Option<String>,
headers: Vec<(String, String)>,
},
Sleep {
id: u32,
duration_ms: u64,
},
}Expand description
Effect request from plugin to host
Plugins cannot perform I/O directly (sandboxed), so they request the host to perform operations on their behalf.
§Example Flow
Plugin: execute(args) -> Effect::HttpGet { id: 1, url: "..." }
Host: performs HTTP GET asynchronously
Host: plugin_resume(1, EffectResult::Http { ... })
Plugin: resume(1, result) -> Success("done")Variants§
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Effect
impl<'de> Deserialize<'de> for Effect
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 Effect
impl RefUnwindSafe for Effect
impl Send for Effect
impl Sync for Effect
impl Unpin for Effect
impl UnwindSafe for Effect
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