polars_plan/dsl/
match_to_schema.rs1use 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}