polars_plan/dsl/
match_to_schema.rs

1use super::{Expr, ExtraColumnsPolicy, MissingColumnsPolicy};
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
5pub enum MissingColumnsPolicyOrExpr {
6    Insert,
7    Raise,
8    InsertWith(Expr),
9}
10
11#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
12#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
13pub enum UpcastOrForbid {
14    Upcast,
15    Forbid,
16}
17
18#[derive(Debug, Clone, PartialEq, Eq)]
19#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
20pub struct MatchToSchemaPerColumn {
21    pub missing_columns: MissingColumnsPolicyOrExpr,
22    pub missing_struct_fields: MissingColumnsPolicy,
23
24    pub extra_struct_fields: ExtraColumnsPolicy,
25
26    pub integer_cast: UpcastOrForbid,
27    pub float_cast: UpcastOrForbid,
28}