Struct protoflow_blocks::WriteFile
source · pub struct WriteFile {
pub path: InputPort<String>,
pub input: InputPort<Bytes>,
}Expand description
A block that writes or appends bytes to the contents of a file.
§Block Diagram
block-beta
columns 4
space:3 Config
space:4
space:4
Source space:2 WriteFile
Config-- "path" -->WriteFile
Source-- "input" -->WriteFile
classDef block height:48px,padding:8px;
classDef hidden visibility:none;
class WriteFile block
class Config hidden
class Source hidden
§Sequence Diagram
sequenceDiagram
autonumber
participant BlockA as Another block
participant WriteFile.path as WriteFile.path port
participant WriteFile as WriteFile block
participant WriteFile.input as WriteFile.input port
participant BlockB as Another block
BlockA-->>WriteFile: Connect
BlockA->>WriteFile: Message (e.g. "/tmp/file.txt")
WriteFile-->>WriteFile.path: Close
WriteFile-->>BlockA: Disconnect
BlockB-->>WriteFile: Connect
loop WriteFile process
BlockB->>WriteFile: Message (Bytes)
WriteFile->>WriteFile: Write bytes to the file
end
BlockB-->>WriteFile: Disconnect
WriteFile-->>WriteFile.input: Close
§Examples
§Using the block in a system
System::build(|s| {
// TODO
});§Running the block via the CLI
$ protoflow execute WriteFile path=/tmp/file.txt
Fields§
§path: InputPort<String>The path to the file to write to.
input: InputPort<Bytes>The input message stream.
Implementations§
Trait Implementations§
source§impl Block for WriteFile
impl Block for WriteFile
source§fn execute(&mut self, _runtime: &dyn BlockRuntime) -> BlockResult
fn execute(&mut self, _runtime: &dyn BlockRuntime) -> BlockResult
Executes this block’s computation.
source§fn prepare(&mut self, _runtime: &dyn BlockRuntime) -> Result<(), BlockError>
fn prepare(&mut self, _runtime: &dyn BlockRuntime) -> Result<(), BlockError>
Prepares this block for execution. Read more
source§impl BlockDescriptor for WriteFile
impl BlockDescriptor for WriteFile
source§fn inputs(&self) -> Vec<PortDescriptor>
fn inputs(&self) -> Vec<PortDescriptor>
A description of this block’s input ports.
source§fn outputs(&self) -> Vec<PortDescriptor>
fn outputs(&self) -> Vec<PortDescriptor>
A description of this block’s output ports.
source§impl Definition for WriteFile
impl Definition for WriteFile
fn is_variation(&self) -> bool
source§impl Element for WriteFile
impl Element for WriteFile
source§fn short_name(&self) -> Option<&str>
fn short_name(&self) -> Option<&str>
The short name of the element, if any.
source§fn is_library_element(&self) -> bool
fn is_library_element(&self) -> bool
Whether this
Element is contained in the ownership tree of
a library model.source§fn owning_namespace(&self) -> Option<&dyn Namespace>
fn owning_namespace(&self) -> Option<&dyn Namespace>
source§fn owning_relationship(&self) -> Option<&dyn Relationship>
fn owning_relationship(&self) -> Option<&dyn Relationship>
fn qualified_name(&self) -> Option<QualifiedName>
source§impl OccurrenceDefinition for WriteFile
impl OccurrenceDefinition for WriteFile
fn is_individual(&self) -> bool
source§impl StdioSystem for WriteFile
impl StdioSystem for WriteFile
fn build_system(_config: StdioConfig) -> Result<System, StdioError>
source§impl Type for WriteFile
impl Type for WriteFile
fn is_abstract(&self) -> bool
fn is_sufficient(&self) -> bool
fn is_conjugated(&self) -> bool
fn specializes(&self, _supertype: &Self) -> bool
impl BlockDefinition for WriteFile
impl Class for WriteFile
impl Classifier for WriteFile
impl ItemDefinition for WriteFile
impl PartDefinition for WriteFile
impl Structure for WriteFile
Auto Trait Implementations§
impl Freeze for WriteFile
impl !RefUnwindSafe for WriteFile
impl Send for WriteFile
impl Sync for WriteFile
impl Unpin for WriteFile
impl !UnwindSafe for WriteFile
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)