use std::fmt;
use serde::Serialize;
use super::*;
#[derive(Debug, Clone, Serialize)]
pub struct PhysicalValues {
logical: LogicalValues,
}
impl PhysicalValues {
pub fn new(logical: LogicalValues) -> Self {
Self { logical }
}
pub fn logical(&self) -> &LogicalValues {
&self.logical
}
}
impl PlanTreeNodeLeaf for PhysicalValues {}
impl_plan_tree_node_for_leaf!(PhysicalValues);
impl PlanNode for PhysicalValues {
fn schema(&self) -> Vec<ColumnDesc> {
self.logical().schema()
}
}
impl fmt::Display for PhysicalValues {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
writeln!(f, "PhysicalValues: {} rows", self.logical().values().len())
}
}