Files
MaaAssistantArknights/src/MaaCore/Config/TaskData/TaskDataSymbolStream.h
zzyyyl e4dbdb9017 refactor: 优化与 TaskData 的 get_raw 和 get 相关部分
fix: 使用 std::erase & std::erase_if, 避免使用具有不同定义的 ranges::remove & ranges::remove_if

现在 get_raw 只能获取任务的继承信息,其它详细信息会在 get 的时候解析。

另:
- 增加 TaskDerivedType 表示任务的继承类型
- 增加 TaskPipelineInfo 表示任务的流程信息(name + 5个TaskList的任务列表)
- 增加 TaskDerivedInfo 表示任务的继承信息,包含 base & prefix & TaskDerivedType
- 给各个任务类型的 shared_ptr 增加了别名;

(cherry picked from commit 6b5b0d5ec2)
2023-11-29 19:02:42 +08:00

28 lines
701 B
C++

#pragma once
#include <optional>
#include <vector>
#include "Config/TaskData.h"
#include "TaskDataSymbol.h"
#include "TaskDataTypes.h"
namespace asst
{
class TaskDataSymbolStream final
{
public:
using Symbol = TaskDataSymbol;
using Symbols = TaskDataSymbol::Symbols;
using SymbolsOrError = TaskDataSymbol::SymbolsOrError;
using AppendPrefixFunc = std::function<SymbolsOrError(const Symbol&, const Symbol&)>;
private:
Symbols m_symbolstream;
public:
ResultOrError<bool> parse(std::string_view task_expr);
SymbolsOrError decode(AppendPrefixFunc append_prefix, std::string_view self_name) const;
};
} // namespace asst