chenjunfu2-nbt-cpp v2.1.3
一个基于CPP20的NBT(Named Binary Tag)库
载入中...
搜索中...
未找到
NBT_Visitor类 参考

提示性实现类(鸭子类型),仅用于模板通过性验证与用户接口提示 更多...

#include <NBT_Visitor.hpp>

Public 类型

using ResultControl = NBT_Visitor_ResultControl
 控制流返回码(普通回调),直接映射 NBT_Visitor_ResultControl
using NestingControl = NBT_Visitor_NestingControl
 控制流返回码(嵌套结构入口回调),直接映射 NBT_Visitor_NestingControl

Public 成员函数

template<typename T>
ResultControl VisitNumericResult (T tNumericResult)
 处理数值类型节点
template<typename T>
ResultControl VisitArrayResult (T &&tArrayResult)
 处理数组类型节点(ByteArray/IntArray/LongArray)
ResultControl VisitStringResult (NBT_Type::String &&strResult)
 处理字符串类型节点
ResultControl VisitEndResult (void)
 处理 End 标记节点
ResultControl VisitListBegin (NBT_TAG enListElementTag, size_t szListLength)
 开始处理一个 List 节点
NestingControl VisitListElementBegin (NBT_TAG enListElementTag, size_t szListIndex)
 开始处理 List 中的一个元素
ResultControl VisitListElementEnd (NBT_TAG enListElementTag, size_t szListIndex)
 结束处理 List 中的一个元素
ResultControl VisitListEnd (void)
 结束处理整个 List 节点
ResultControl VisitCompoundBegin (void)
 开始处理一个 Compound 节点
NestingControl VisitCompoundNextEntryType (NBT_TAG enCompoundEntryTag)
 在 Compound 中,开始处理下一个条目之前,仅提供类型信息
NestingControl VisitCompoundEntryBegin (NBT_TAG enCompoundEntryTag, NBT_Type::String &&sName)
 开始处理 Compound 中的一个条目(键值对)
ResultControl VisitCompoundEntryEnd (NBT_TAG enCompoundEntryTag, NBT_Type::String &&sName)
 结束处理 Compound 中的一个条目
ResultControl VisitCompoundEnd (void)
 结束处理整个 Compound 节点
void VisitBegin (void)
 整个 NBT 扫描开始回调(根部调用)
void VisitEnd (void)
 整个 NBT 扫描结束回调(根部调用)
template<typename... Args>
void VisitError (NBT_Print_Level lvl, const std::format_string< Args... > fmt, Args &&... args) noexcept
 错误处理回调

详细描述

提示性实现类(鸭子类型),仅用于模板通过性验证与用户接口提示

注解
用户自定义的访问器类需要实现与此类相同的成员函数(不必继承), 并满足 IsLookLike_NBT_Visitor 概念。

成员函数说明

◆ VisitArrayResult()

template<typename T>
ResultControl NBT_Visitor::VisitArrayResult ( T && tArrayResult)
inline

处理数组类型节点(ByteArray/IntArray/LongArray)

模板参数
T数组类型,必须满足 NBT_Type::IsArrayType_V 且不是引用
参数
tArrayResult数组结果(右值引用)
返回
控制码,决定后续行为

◆ VisitCompoundBegin()

ResultControl NBT_Visitor::VisitCompoundBegin ( void )
inline

开始处理一个 Compound 节点

返回
控制码,决定后续行为

◆ VisitCompoundEnd()

ResultControl NBT_Visitor::VisitCompoundEnd ( void )
inline

结束处理整个 Compound 节点

返回
控制码,决定后续行为

◆ VisitCompoundEntryBegin()

NestingControl NBT_Visitor::VisitCompoundEntryBegin ( NBT_TAG enCompoundEntryTag,
NBT_Type::String && sName )
inline

开始处理 Compound 中的一个条目(键值对)

参数
enCompoundEntryTag条目的类型标签
sName条目的键名(右值引用)
返回
嵌套控制码,决定后续行为

◆ VisitCompoundEntryEnd()

ResultControl NBT_Visitor::VisitCompoundEntryEnd ( NBT_TAG enCompoundEntryTag,
NBT_Type::String && sName )
inline

结束处理 Compound 中的一个条目

参数
enCompoundEntryTag条目的类型标签
sName条目的键名(右值引用)
返回
控制码,决定后续行为

◆ VisitCompoundNextEntryType()

NestingControl NBT_Visitor::VisitCompoundNextEntryType ( NBT_TAG enCompoundEntryTag)
inline

在 Compound 中,开始处理下一个条目之前,仅提供类型信息

参数
enCompoundEntryTag条目的类型标签
返回
嵌套控制码,决定后续行为

◆ VisitEndResult()

ResultControl NBT_Visitor::VisitEndResult ( void )
inline

处理 End 标记节点

注解
通常用于 List 中的空列表或标记结束,一般用户无需特殊处理
返回
控制码,决定后续行为

◆ VisitError()

template<typename... Args>
void NBT_Visitor::VisitError ( NBT_Print_Level lvl,
const std::format_string< Args... > fmt,
Args &&... args )
inlinenoexcept

错误处理回调

模板参数
Args格式化参数类型包
参数
lvl错误级别
fmt格式化字符串
args格式化参数
注解
该函数仅用于输出/记录错误信息,不影响扫描的控制流。

◆ VisitListBegin()

ResultControl NBT_Visitor::VisitListBegin ( NBT_TAG enListElementTag,
size_t szListLength )
inline

开始处理一个 List 节点

参数
enListElementTag列表元素的类型标签
szListLength列表长度
返回
控制码,决定后续行为

◆ VisitListElementBegin()

NestingControl NBT_Visitor::VisitListElementBegin ( NBT_TAG enListElementTag,
size_t szListIndex )
inline

开始处理 List 中的一个元素

参数
enListElementTag列表元素的类型标签
szListIndex当前元素在列表中的索引(从0开始)
返回
嵌套控制码,决定是否进入该元素、跳过或停止

◆ VisitListElementEnd()

ResultControl NBT_Visitor::VisitListElementEnd ( NBT_TAG enListElementTag,
size_t szListIndex )
inline

结束处理 List 中的一个元素

参数
enListElementTag列表元素的类型标签
szListIndex当前元素在列表中的索引(从0开始)
返回
控制码,决定后续行为

◆ VisitListEnd()

ResultControl NBT_Visitor::VisitListEnd ( void )
inline

结束处理整个 List 节点

返回
控制码,决定后续行为

◆ VisitNumericResult()

template<typename T>
ResultControl NBT_Visitor::VisitNumericResult ( T tNumericResult)
inline

处理数值类型节点

模板参数
T数值类型,必须满足 NBT_Type::IsNumericType_V
参数
tNumericResult数值结果
返回
控制码,决定后续行为

◆ VisitStringResult()

ResultControl NBT_Visitor::VisitStringResult ( NBT_Type::String && strResult)
inline

处理字符串类型节点

参数
strResult字符串结果(右值引用)
返回
控制码,决定后续行为

该类的文档由以下文件生成: