Module user

Module user 

Source
Expand description

User-facing API for defining virtual tables.

This module provides simplified traits for users to implement custom virtual tables. Users can choose between two levels of abstraction:

§Example

use reifydb_engine::table_virtual::{TableVirtualUser, TableVirtualUserColumnDef};
use reifydb_type::Type;
use reifydb_core::value::Value;

struct MyApiTable {
    api_client: ApiClient,
}

impl TableVirtualUser for MyApiTable {
    fn columns(&self) -> Vec<TableVirtualUserColumnDef> {
        vec![
            TableVirtualUserColumnDef::new("id", Type::Uint8),
            TableVirtualUserColumnDef::new("name", Type::Utf8),
        ]
    }

    fn rows(&self) -> Vec<Vec<Value>> {
        self.api_client.fetch_data()
            .map(|r| vec![Value::Uint8(r.id), Value::Utf8(r.name.into())])
            .collect()
    }
}

Structs§

TableVirtualUserColumnDef
Column definition for user virtual tables.
TableVirtualUserPushdownContext
Pushdown context for advanced virtual table implementations.

Traits§

TableVirtualUser
Simple trait for user-defined virtual tables.
TableVirtualUserIterator
Advanced trait for streaming virtual table implementations.