Albert
Loading...
Searching...
No Matches
rankedqueryhandler.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2025 Manuel Schneider
2// SPDX-License-Identifier: MIT
3
4#pragma once
6#include <albert/rankitem.h>
7#include <vector>
8
9namespace albert
10{
11
23class ALBERT_EXPORT RankedQueryHandler : public GeneratorQueryHandler
24{
25public:
35 virtual std::vector<RankItem> rankItems(QueryContext &context) = 0;
36
38 static ItemGenerator lazySort(std::vector<RankItem> rank_items);
39
41 ItemGenerator items(QueryContext &context) override;
42
43protected:
46};
47
48} // namespace albert
Coroutine-based synchronous generator query handler.
Definition generatorqueryhandler.h:30
Query interface.
Definition querycontext.h:19
Usage-ranked query handler.
Definition rankedqueryhandler.h:24
virtual std::vector< RankItem > rankItems(QueryContext &context)=0
Returns a list of scored matches for context.
~RankedQueryHandler() override
Destructs the handler.
static ItemGenerator lazySort(std::vector< RankItem > rank_items)
Yields rank_items lazily sorted.
ItemGenerator items(QueryContext &context) override
Yields result of rankItems for context usage scored and lazily sorted.
Definition app.h:56
QCoro::Generator< std::vector< std::shared_ptr< albert::Item > > > ItemGenerator
Definition generatorqueryhandler.h:14