tantivy-py/src/query.rs

27 lines
583 B
Rust
Raw Normal View History

use pyo3::prelude::*;
2019-08-02 11:23:10 +00:00
use pyo3::PyObjectProtocol;
use std::sync::Arc;
use tantivy as tv;
/// Tantivy's Query
#[pyclass]
pub(crate) struct Query {
pub(crate) query: Arc<String>,
pub(crate) parser: tv::query::QueryParser,
}
impl Query {
pub(crate) fn get(&self) -> Box<dyn tv::query::Query> {
self.parser
.parse_query(&self.query)
.expect("Created a query that returns a parse error")
}
}
2019-08-02 11:23:10 +00:00
#[pyproto]
impl PyObjectProtocol for Query {
fn __repr__(&self) -> PyResult<String> {
Ok(format!("Query({:?})", self.get()))
}
}