mirror of
https://forge.katzen.cafe/katzen-cafe/iowo.git
synced 2024-12-04 18:28:45 +01:00
experimentation: implement some basic traits for io and data types
This commit is contained in:
parent
31a044577a
commit
0705702d4a
|
@ -5,6 +5,7 @@ use std::{borrow::ToOwned, convert::Into};
|
||||||
use super::raw::Data;
|
use super::raw::Data;
|
||||||
|
|
||||||
/// Newtype struct with borrowed types for pipeline/element inputs, so that doesn't force a move or clone
|
/// Newtype struct with borrowed types for pipeline/element inputs, so that doesn't force a move or clone
|
||||||
|
#[derive(PartialEq, Eq, Debug)]
|
||||||
pub struct Inputs<'a>(pub Vec<&'a Data>);
|
pub struct Inputs<'a>(pub Vec<&'a Data>);
|
||||||
|
|
||||||
impl<'a> From<Vec<&'a Data>> for Inputs<'a> {
|
impl<'a> From<Vec<&'a Data>> for Inputs<'a> {
|
||||||
|
@ -26,7 +27,8 @@ impl<'a> From<&'a Outputs> for Inputs<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Used for pipeline/element outputs
|
/// Used for pipeline/element outputs
|
||||||
pub struct Outputs(Vec<Data>);
|
#[derive(PartialEq, Eq, Debug)]
|
||||||
|
pub struct Outputs(pub Vec<Data>);
|
||||||
|
|
||||||
impl Outputs {
|
impl Outputs {
|
||||||
/// consume self and return inner value(s)
|
/// consume self and return inner value(s)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
//! Dynamic data storage and transfer types for use in [`io`]
|
//! Dynamic data storage and transfer types for use in [`io`]
|
||||||
|
|
||||||
// Dynamic data type
|
// Dynamic data type
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||||
pub enum Data {
|
pub enum Data {
|
||||||
String(String),
|
String(String),
|
||||||
Int(i32),
|
Int(i32),
|
||||||
|
|
Loading…
Reference in a new issue