pub struct WindowProjector;Expand description
Window function result projector.
Transforms SQL query results into GraphQL-compatible JSON format.
Implementations§
Source§impl WindowProjector
impl WindowProjector
Sourcepub fn project(
rows: Vec<HashMap<String, Value>>,
_plan: &WindowExecutionPlan,
) -> Result<Value>
pub fn project( rows: Vec<HashMap<String, Value>>, _plan: &WindowExecutionPlan, ) -> Result<Value>
Project SQL window function results to GraphQL JSON.
§Arguments
rows- SQL result rows as HashMaps (column name → value)plan- Window execution plan (for metadata like aliases)
§Returns
GraphQL-compatible JSON array of objects
§Example
ⓘ
let rows = vec![
hashmap!{
"revenue" => json!(100.00),
"category" => json!("Electronics"),
"rank" => json!(1)
}
];
let result = WindowProjector::project(rows, &plan)?;
// result: [{"revenue": 100.00, "category": "Electronics", "rank": 1}]Sourcepub fn wrap_in_data_envelope(projected: Value, query_name: &str) -> Value
pub fn wrap_in_data_envelope(projected: Value, query_name: &str) -> Value
Wrap projected results in a GraphQL data envelope.
§Arguments
projected- The projected JSON value (array of objects)query_name- The GraphQL field name (e.g., “sales_window”)
§Returns
Complete GraphQL response structure
§Example
ⓘ
let projected = json!([{"rank": 1}, {"rank": 2}]);
let response = WindowProjector::wrap_in_data_envelope(projected, "sales_window");
// { "data": { "sales_window": [{"rank": 1}, {"rank": 2}] } }Auto Trait Implementations§
impl Freeze for WindowProjector
impl RefUnwindSafe for WindowProjector
impl Send for WindowProjector
impl Sync for WindowProjector
impl Unpin for WindowProjector
impl UnsafeUnpin for WindowProjector
impl UnwindSafe for WindowProjector
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