pub struct ReadStdin {
pub output: OutputPort<Bytes>,
pub buffer_size: ByteSize,
}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.txtFields§
§output: OutputPort<Bytes>The output message stream.
buffer_size: ByteSizeThe 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<ByteSize>, ) -> Self
pub fn with_system(system: &System, buffer_size: Option<ByteSize>) -> 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§fn parameters(&self) -> Vec<ParameterDescriptor>
fn parameters(&self) -> Vec<ParameterDescriptor>
A description of this block’s parameters.
Source§fn ports(&self) -> Vec<PortDescriptor>
fn ports(&self) -> Vec<PortDescriptor>
A description of this block’s I/O ports.
Source§impl MaybeLabeled for ReadStdin
impl MaybeLabeled for ReadStdin
Source§impl MaybeNamed for ReadStdin
impl MaybeNamed for ReadStdin
Source§impl StdioSystem for ReadStdin
impl StdioSystem for ReadStdin
fn build_system(config: StdioConfig) -> Result<System, StdioError>
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> AsBlockDescriptor for Twhere
T: BlockDescriptor,
impl<T> AsBlockDescriptor for Twhere
T: BlockDescriptor,
fn as_block_descriptor(&self) -> &dyn BlockDescriptor
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