(
&mut self,
client: &Client,
repo_id: RepoId,
entry: &SearchEntry,
before: &BTreeSet<Search>,
after: &BTreeSet<Search>,
)
| 805 | } |
| 806 | |
| 807 | pub fn update( |
| 808 | &mut self, |
| 809 | client: &Client, |
| 810 | repo_id: RepoId, |
| 811 | entry: &SearchEntry, |
| 812 | before: &BTreeSet<Search>, |
| 813 | after: &BTreeSet<Search>, |
| 814 | ) -> Result<()> { |
| 815 | let removed = before.difference(after); |
| 816 | for search in removed { |
| 817 | for token in &search.tokens { |
| 818 | let key = repo_id.index_key(token)?; |
| 819 | self.search_token_index(client, &key)? |
| 820 | .remove(entry, token.to_owned())?; |
| 821 | } |
| 822 | } |
| 823 | |
| 824 | let empty = BTreeSet::new(); |
| 825 | let before = match self.mode { |
| 826 | IndexMode::Replace => &empty, |
| 827 | _ => before, |
| 828 | }; |
| 829 | |
| 830 | let added = after.difference(before); |
| 831 | for search in added { |
| 832 | for token in &search.tokens { |
| 833 | let key = repo_id.index_key(token)?; |
| 834 | self.search_token_index(client, &key)? |
| 835 | .add(entry, token.to_owned())?; |
| 836 | } |
| 837 | } |
| 838 | |
| 839 | Ok(()) |
| 840 | } |
| 841 | |
| 842 | pub fn update_synonyms( |
| 843 | &mut self, |
no test coverage detected