Repository navigation
NBT_CPP
vcpkg 2.1.3
更新说明
API 灵活性提升、流处理接口规范化、M-UTF-8 字符类型标准化、便捷文件操作接口新增和代码健壮性增强。
修复内容
NBT_Visitor中的ResultControl和NestingControl从嵌套枚举提升为全局枚举NBT_Visitor_ResultControl和NBT_Visitor_NestingControl,现在用户可以直接使用全局枚举了。NBT_Print添加类型别名using Level = NBT_Print_Level。
新增内容
- 便捷文件操作接口:新增
NBT_Reader::SimpleReadNbtFile、NBT_Writer::SimpleWriteNbtFile和NBT_Scanner::SimpleScanNbtFile(需安装zlib库),提供从文件路径一步完成读取/写入/扫描的便捷方法,自动处理压缩/解压回退逻辑。 NBT_WriteStream::RemoveData(size_t):新增批量撤销写入字节的方法,与已有的UnPut()互补。NBT_NoPrint类:新增空输出打印工具类,拥有与NBT_Print完全相同的仿函数接口,用于替换NBT_Print以禁用所有信息输出。MUTF8_Char_Traits:为 M-UTF-8 字符类型实现完整的std::char_traits接口,使std::basic_string/std::basic_string_view能与 M-UTF-8 字符类型标准库集成。MUTF8_Char_Type/MUTF8_String/MUTF8_String_View:新增 M-UTF-8 默认字符类型及基于自定义 traits 的字符串/视图类型别名。
API 变更
- 排序策略重构:
NBT_Helper::Print、NBT_Helper::Serialize、NBT_Helper::Hash和NBT_Writer::WriteNBT系列函数中,原有的bool bSortCompound模板参数全面替换为SortPolicy策略类型。同时新增NoSortCompound标签类型和DefaultCompoundSort<bool bAscending>策略类。用户现可传入自定义可调用对象来控制 Compound 的排序。 - 流处理接口重命名:
NBT_ReadStream中AddIndex→SkipData、SubIndex→RewindData,命名更准确地反映操作语义;移除无必要的CurData()和BaseData()接口。 NBT_IO文件读写增强:WriteFile和ReadFile新增InfoFunc模板参数以输出异常信息;ReadFile改用std::filesystem::file_size替代seekg/tellg获取文件大小,并增加文件类型检查、大小溢出检查及完善的异常捕获处理。- 压缩解压接口统一:
CompressDataNoThrow和DecompressDataNoThrow的模板参数名ErrInfoFunc统一为InfoFunc,参数名funcErrInfo统一为funcInfo,错误输出格式统一通过NBT_Print_Level::Err等级传递。 MUTF8_Tool模板:MU8T默认类型从uint8_t改为MUTF8_Char_Type,新增MU8_String/MU8_String_View成员类型——当MU8T为默认类型时自动选用带自定义 traits 的版本,否则回退标准库默认;所有返回 / 接受 M-UTF-8 字符串的公有接口统一改用新类型。NBT_Type:NBT_String的模板参数从std::basic_string<uint8_t>改为MUTF8_String。
其它
- 部分 Doxygen 注释更新。
- 部分内部逻辑、类型修改、声明简化。
- 部分无用代码与注释清理,代码格式化对齐。
- 部分头文件包含关系变动。