hit_data/hit_mod/
hit_entry.rs

1use crate::object_data::Id;
2use crate::object_data::ObjectValue;
3use crate::{index::IndexEntry, ObjectValues};
4use crate::{model::Model, IndexEntryProperty};
5use std::cell::RefCell;
6use std::rc::Rc;
7
8pub struct HitEntry {
9    pub(in crate) entry: Rc<RefCell<IndexEntry>>,
10    pub(in crate) model: Rc<Model>,
11}
12
13impl HitEntry {
14    pub fn get(&self, property: &str) -> ObjectValue {
15        let entry = self.entry.borrow();
16        return entry.get(property).clone();
17    }
18
19    pub fn get_id(&self) -> Id {
20        let entry = self.entry.borrow();
21        return entry.get_id().clone();
22    }
23
24    pub fn get_model(&self) -> Rc<Model> {
25        return self.model.clone();
26    }
27
28    pub fn get_parent_id(&self) -> Option<String> {
29        let entry = self.entry.borrow();
30        return entry.get_parent_id();
31    }
32
33    pub fn get_parent_property(&self) -> Option<String> {
34        let entry = self.entry.borrow();
35        return entry.get_parent_property();
36    }
37
38    pub fn get_parent(&self) -> Option<IndexEntryProperty> {
39        let entry = self.entry.borrow();
40        return entry.get_parent();
41    }
42
43    pub fn get_data(&self) -> ObjectValues {
44        let entry = self.entry.borrow();
45        entry.data.clone()
46    }
47}