1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
use crate::expr::PyExpr;
use datafusion_expr::expr::GetIndexedField;
use pyo3::prelude::*;
use std::fmt::{Display, Formatter};
use super::literal::PyLiteral;
#[pyclass(name = "GetIndexedField", module = "datafusion.expr", subclass)]
#[derive(Clone)]
pub struct PyGetIndexedField {
indexed_field: GetIndexedField,
}
impl From<PyGetIndexedField> for GetIndexedField {
fn from(indexed_field: PyGetIndexedField) -> Self {
indexed_field.indexed_field
}
}
impl From<GetIndexedField> for PyGetIndexedField {
fn from(indexed_field: GetIndexedField) -> PyGetIndexedField {
PyGetIndexedField { indexed_field }
}
}
impl Display for PyGetIndexedField {
fn fmt(&self, f: &mut Formatter) -> std::fmt::Result {
write!(
f,
"GetIndexedField
Expr: {:?}
Key: {:?}",
&self.indexed_field.expr, &self.indexed_field.key
)
}
}
#[pymethods]
impl PyGetIndexedField {
fn expr(&self) -> PyResult<PyExpr> {
Ok((*self.indexed_field.expr).clone().into())
}
fn key(&self) -> PyResult<PyLiteral> {
Ok(self.indexed_field.key.clone().into())
}
fn __repr__(&self) -> String {
format!("{}", self)
}
}