Struct protoflow_blocks::ReadStdin
source · pub struct ReadStdin {
pub output: OutputPort<Bytes>,
pub buffer_size: usize,
}Expand description
A block that reads bytes from standard input (aka stdin).
§Block Diagram
block-beta
columns 4
ReadStdin space:2 Sink
ReadStdin-- "output" -->Sink
classDef block height:48px,padding:8px;
classDef hidden visibility:none;
class ReadStdin block
class Sink hidden
§Sequence Diagram
sequenceDiagram
autonumber
participant ReadStdin as ReadStdin block
participant ReadStdin.output as ReadStdin.output port
participant BlockA as Another block
ReadStdin-->>BlockA: Connect
loop ReadStdin process
ReadStdin->>ReadStdin: Read bytes from standard input
ReadStdin->>BlockA: Message (Bytes)
end
ReadStdin-->>ReadStdin.output: Close
ReadStdin-->>BlockA: Disconnect
§Examples
§Using the block in a system
System::build(|s| {
let stdin = s.read_stdin();
let stdout = s.write_stdout();
s.connect(&stdin.output, &stdout.input);
});§Running the block via the CLI
$ protoflow execute ReadStdin < input.txt
$ protoflow execute ReadStdin buffer-size=1024 < input.txt
Fields§
§output: OutputPort<Bytes>The output message stream.
buffer_size: usizeThe maximum number of bytes to read at a time.
Implementations§
source§impl ReadStdin
impl ReadStdin
pub fn new(output: OutputPort<Bytes>) -> Self
pub fn with_params( output: OutputPort<Bytes>, buffer_size: Option<usize>, ) -> Self
Trait Implementations§
source§impl Block for ReadStdin
impl Block for ReadStdin
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 ReadStdin
impl BlockDescriptor for ReadStdin
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 ReadStdin
impl Definition for ReadStdin
fn is_variation(&self) -> bool
source§impl Element for ReadStdin
impl Element for ReadStdin
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 ReadStdin
impl OccurrenceDefinition for ReadStdin
fn is_individual(&self) -> bool
source§impl StdioSystem for ReadStdin
impl StdioSystem for ReadStdin
fn build_system(_config: StdioConfig) -> Result<System, StdioError>
source§impl Type for ReadStdin
impl Type for ReadStdin
fn is_abstract(&self) -> bool
fn is_sufficient(&self) -> bool
fn is_conjugated(&self) -> bool
fn specializes(&self, _supertype: &Self) -> bool
impl BlockDefinition for ReadStdin
impl Class for ReadStdin
impl Classifier for ReadStdin
impl ItemDefinition for ReadStdin
impl PartDefinition for ReadStdin
impl Structure for ReadStdin
Auto Trait Implementations§
impl Freeze for ReadStdin
impl !RefUnwindSafe for ReadStdin
impl Send for ReadStdin
impl Sync for ReadStdin
impl Unpin for ReadStdin
impl !UnwindSafe for ReadStdin
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)