Parcel.CoreEngine.zh
Parcel.CoreEngine.Contracts.IFrontendImplementedNode
Provides formal definition for front-end implemented nodes, e.g. literals, etc.
Parcel.CoreEngine.Contracts.NodeTargetDescriptor
提供有关节点类型绑定/端点/目标类型定义的详细信息,主要是为了通知运行时引擎和前端目标类型是什么以及如何找到它
Remarks
TODO: 考虑将其与 NodeTargetPathProtocolStructure 合并,但请注意,这旨在成为一个纯通用的数据描述符,我们不希望它与正则表达式解析协议绑定。
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.Runtime
每个节点都有一个独特的目标运行时
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.UniqueParcelName
该目标类型的人类可读名称,保证在Parcel生态系统中所有节点中是唯一的。
这些名称仅适用于“官方”节点,并非所有节点都有这样的名称。
所有这些名称将在某个中心注册处可用。
这类名称的一般格式应为:Domain.Category.Node.Variant
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.Aliases
A node might have a bunch of aliases for searching purpose.
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.DefaultDisplayName
节点可能具有默认显示名称
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.Namespace
对于在C#中定义的节点,它们必须具有一个命名空间
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.Module
Assembly in C#, module in Python
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.DeclaringType
对于类型和C#函数,它们都有一个封装类容器;
对于Python,方法可以位于全局/模块范围内的文件中,因此这将为空。
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.TargetName
类型、方法、属性
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.IsNodeMemberProperty
The node is referencing into a member property of a typed instance
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.IsNodeInstanceFunction
该节点是对实例函数的调用
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.IsNodeGlobalFunction
该节点指的是一个静态函数
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.IsNodeObjectInstance
节点引用一个类型,并将实例化该类型的实例
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.IsNodeTypeDefinition
Parcel支持元编程和声明式类型定义;在这种情况下,它动态生成和定义新类型。
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.FullTargetPath
Globally unique single-string identifier for the target; A combination (the "Protocol") of values above.
返回值说明
全局唯一单字符串标识符
Parcel.CoreEngine.Contracts.NodeTargetDescriptor.ShortestTargetPath
Globally unique shortest single-string identifier for the target.
Parcel.CoreEngine.Contracts.ParcelNodeRuntimeExceptionBase
Base exception for runtime user-facing application-level node-related exceptions (i.e. non-runtime/engine-level/implementation exceptions)
Parcel.CoreEngine.Contracts.PluginMetadata.Serialize()
将插件元数据序列化为指定格式的文件。
Parameters
| Name | Description | Default |
|---|---|---|
filePath |
保存元数据的文件路径。 |
返回值
序列化的成功或失败状态。
Parcel.CoreEngine.Contracts.PluginMetadata.Deserialize()
从指定格式的文件中反序列化插件元数据。
Parameters
| Name | Description | Default |
|---|---|---|
filePath |
读取元数据的文件路径。 |
新的插件元数据实例
填充字段的新插件元数据实例。
Parcel.CoreEngine.Contracts.SystemNodes.CoreTestEmptyTarget
An empty target, used for testing purpose; May be used for attaching arbitrary attributes to nodes that are not visible in front-ends.
Parcel.CoreEngine.Contracts.SystemNodes.ReservedNodeTargetNames
这些是某些节点的保留名称,具有特殊的运行时功能
TODO: 我们可以让这些唯一名称更短吗?
Parcel.CoreEngine.Contracts.SystemTags
Reserved names for tags
Parcel.CoreEngine.Contracts.SystemTags.AnnotationTag
Indicates an annotation node
Parcel.CoreEngine.Conversion.StringTypeConverter.ConvertValue()
借用自纯 CLI 库
Parameters
| Name | Description | Default |
|---|---|---|
|
类型 | |
|
字符串数组 |
转换后的值
返回值
Parcel.CoreEngine.DependencySolver.NodeExecutionQueueSolver
根据抽象连接信息和节点类型(功能性 vs 过程性),此解析器解析并输出一个节点列表,以正确的顺序执行。
此类为了简单起见接收 ParcelDocument,但在内部它并不依赖于这样的结构,应该能够接受任何抽象连接信息。
Parcel.CoreEngine.DependencySolver.ExecutionLayer
一个类似树的结构,但基于执行顺序层级。
根据节点之间的依赖关系将一组节点排序到评估层中,同时确保节点尽可能晚地被评估(即尽可能接近它们被需要的时候)。
最左侧(第一个)层是没有依赖关系的“底部/叶子”节点。
最右侧(最后一个)层是依赖于所有其他节点的最终(根)节点。
Remarks
假设没有循环依赖。
Parcel.CoreEngine.DependencySolver.ExecutionLayer.SortDependencyGraph()
实现拓扑排序
Parameters
| Name | Description | Default |
|---|---|---|
nodes |
||
dependencies |
排序结果
返回排序后的节点数组
Parcel.CoreEngine.DependencySolver.ExecutionQueue
执行队列用于解决功能节点的依赖关系。
假设没有循环依赖。
Parcel.CoreEngine.NodeGraphDocumentBase
A representation of Parcel NExT node graph.
Parcel.CoreEngine.Document.VraNode
表示一个无上下文的 Divooka 节点。适合序列化。
提供与标准解析、元数据理解和信息提取相关的一些辅助函数。
Remarks
备注:保持简洁和隐含。不需要额外的修饰或信息。
Parcel.CoreEngine.Document.VraNode.Nodes
Remarks
A Divooka Graph node may directly contain documents/graphs inside.
Parcel.CoreEngine.Document.VraNode.GetInputAttributes
返回属性名称
Attribute names not trimmed.
Parcel.CoreEngine.Document.VraNode.GetOutputAttributes
属性名称未修剪
Parcel.CoreEngine.Document.VraNode.OutboundConnections
可能被某些前端使用;可能并非总是可用。
核心算法不应依赖此项。
Parcel.CoreEngine.Document.VraNode.NodeID
Unique node ID in document.
Parcel.CoreEngine.Document.VraNode.HasInputs
检查节点是否具有输入依赖项。
Remarks
注意:输入属性(前端概念)与实际输入连接不同。
返回布尔值
返回一个布尔值,指示节点是否具有输入依赖项。
Parcel.CoreEngine.Document.VraNode.GetInputNodes()
获取连接到此节点的任何属性的输入节点。
Parameters
| Name | Description | Default |
|---|---|---|
|
inputNodes |
返回的输入节点
返回的输入节点
Parcel.CoreEngine.Document.NodeConnection
表示强类型连接。
Remarks
这个类不会在序列化中直接使用,但它是一个有用的中间帮助构造。
TODO: 目前这个类仅仅是一个占位符,等待辅助和支持算法的实现。
Parcel.CoreEngine.Helpers.AssemblyHelper.ParcelNExTDistributionRuntimeDirectory
获取Parcel NExT发行版的根文件夹。
Parcel.CoreEngine.Helpers.AssemblyHelper.InterpreterAssemblyDirectory
Directory of the interpreter, which is usually the same as the core engine directory.
Parcel.CoreEngine.Helpers.AssemblyHelper.GetInterface``1()
查找并获取接口实例。
Parcel.CoreEngine.Helpers.CSVHelper.ReadCSVFile()
从文件中读取 CSV。
Parameters
| Name | Description | Default |
|---|---|---|
filePath |
||
headers |
||
hasHeader |
返回的记录列表
返回的记录列表
Parcel.CoreEngine.Helpers.CSVHelper.ParseCSV()
解析 CSV 文本。
Parameters
| Name | Description | Default |
|---|---|---|
|
System.String | |
|
System.String[]@ | |
|
System.Boolean |
解析结果
返回解析后的内容
Parcel.CoreEngine.Helpers.CSVHelper.Parse()
将 CSV 解析为双精度数组
Remarks
此函数看起来冗余。
Parameters
| Name | Description | Default |
|---|---|---|
|
||
|
||
|
返回的双精度数组
Parcel.CoreEngine.Helpers.DocumentationHelper
提供用于 .net 程序集生成的 XML 文档的解析服务。
从生成的 XML 文档文件生成 MD 文档。
Parcel.CoreEngine.Helpers.DocumentationHelper.Argument
提供成员函数参数的元数据/文档。
Parcel.CoreEngine.Helpers.DocumentationHelper.Member
提供类成员的元数据/文档。
Parcel.CoreEngine.Helpers.DocumentationHelper.Member.FormalName
完整的程序集名称,参见 https://learn.microsoft.com/en-ca/dotnet/csharp/language-reference/language-specification/documentation-comments#id-strings
Parcel.CoreEngine.Helpers.DocumentationHelper.Member.Arguments
函数或类/类型的主要构造函数的参数
Parcel.CoreEngine.Helpers.DocumentationHelper.Member.DisplayName
任意覆盖名称
Parcel.CoreEngine.Helpers.DocumentationHelper.Member.ReturnName
返回值的名称
返回值名称
Parcel.CoreEngine.Helpers.DocumentationHelper.Parse()
Pseudo entry
Parameters
| Name | Description | Default |
|---|---|---|
parameter1 |
||
parameter2 |
返回值显示名称
返回值说明
Parcel.CoreEngine.Helpers.EmbeddedResourceHelper.ReadBinaryResourceStrict()
Remarks
Caller must dispose stream.
Parameters
| Name | Description | Default |
|---|---|---|
|
resourcePath |
二进制数据
byte[]
Parcel.CoreEngine.Helpers.EmbeddedResourceHelper.ReadBinaryResource()
Remarks
Caller must dispose stream.
Parameters
| Name | Description | Default |
|---|---|---|
|
返回的二进制数据
Parcel.CoreEngine.Helpers.EnvironmentVariableHelper
处理环境变量;
包含用于识别与 PATH 环境变量相关的可执行文件位置的辅助函数
Parcel.CoreEngine.Helpers.EnvironmentVariableHelper.FindProgram()
查找程序的磁盘位置
Parameters
| Name | Description | Default |
|---|---|---|
programName |
||
isRequired |
||
defaultPath |
程序路径
程序的磁盘路径
Parcel.CoreEngine.Helpers.EnvironmentVariableHelper.FindProgramCustom()
在自定义路径中搜索程序。
Parameters
| Name | Description | Default |
|---|---|---|
paths |
||
fileName |
||
extension |
找到的程序路径
找到的程序路径
Parcel.CoreEngine.Helpers.FileSystemHelper
一些非常有用且常用的辅助函数
Remarks
TODO:存在依赖不完善的问题——目前这与 Zora Standard 有所重叠。我们需要确定 Standard 是否应该依赖于 Core,或者反之亦然——或者 Standard 是否应该成为 Core 的一部分。理想情况下,Standard 保持为一个包。目前这似乎有意义,因为 Zora Standard 大多数是包装器——在这种情况下,我们包装我们自己的代码,也就是 FileSystemHelper,而不是包装 .Net Core。
Parcel.CoreEngine.Helpers.FileSystemHelper.GetApplicationDataFile()
获取与指定应用程序唯一的文件路径。
Parameters
| Name | Description | Default |
|---|---|---|
applicationName |
||
fileName |
文件路径
Parcel.CoreEngine.Helpers.FileSystemHelper.GetApplicationDataFile()
获取到一个独特的应用程序在文件夹中的路径。
Parameters
| Name | Description | Default |
|---|---|---|
|
System.String | |
|
System.String | |
|
System.String |
文件路径
返回文件的路径
Parcel.CoreEngine.Helpers.FileSystemHelper.GetApplicationDataFile()
获取路径到一个独特的文件,该文件属于一个命名的应用程序,存储在子文件夹中。
Parameters
| Name | Description | Default |
|---|---|---|
appName |
||
fileName |
||
subfolder |
||
extension |
文件路径
Parcel.CoreEngine.Helpers.FileSystemHelper.GetApplicationDataFolder()
获取特定命名应用程序的唯一文件夹路径,并可选择性地创建该文件夹。
Parameters
| Name | Description | Default |
|---|---|---|
|
folderName | |
|
createIfMissing |
应用程序数据文件夹路径
返回应用程序数据文件夹的路径
Parcel.CoreEngine.Helpers.FileSystemHelper.GetApplicationDataFolder()
获取唯一命名的应用程序内子文件夹的路径, 可选地创建该文件夹。
Parameters
| Name | Description | Default |
|---|---|---|
parameter1 |
||
parameter2 |
||
parameter3 |
返回的文件夹路径
Parcel.CoreEngine.Helpers.JSONHelper.EscapeJsonString()
Escapes a single JSON string literal
Parameters
| Name | Description | Default |
|---|---|---|
|
input | |
|
escape |
转义后的JSON字符串
result
Parcel.CoreEngine.Helpers.JSONHelper.DecodeJsonString()
反转转义 JSON 字符串
Parameters
| Name | Description | Default |
|---|---|---|
|
字符串 | |
|
布尔值 |
解码结果
解码后的对象
Parcel.CoreEngine.Helpers.NodeAttributeNameHelper
提供节点属性名称的标准解析
Parcel.CoreEngine.Helpers.NodeAttributeNameHelper.GetNameTypeOnly()
提取注解语法中的属性名称和类型;有效去除额外的符号。
Parameters
| Name | Description | Default |
|---|---|---|
|
name |
返回属性名称和类型
返回值
Parcel.CoreEngine.Helpers.NodeAttributeNameHelper.GetNameOnly()
提取注释语法中的属性名称;有效地修剪额外的符号。
Parcel.CoreEngine.Helpers.PasswordHasher.HashPassword()
Hashes a password using PBKDF2 with a random salt.
Parameters
| Name | Description | Default |
|---|---|---|
password |
The plain text password. |
哈希密码字符串
A hashed password string containing the salt and hash.
Parcel.CoreEngine.Helpers.PasswordHasher.VerifyPassword()
验证密码与哈希密码是否匹配。
Parameters
| Name | Description | Default |
|---|---|---|
password |
明文密码。 | |
hashedPassword |
要验证的哈希密码。 |
返回值
如果密码匹配,则为 true;否则为 false。
Parcel.CoreEngine.Helpers.ProcessHelper
提供Python解释器、Pipeline包以及服务器/客户端互操作的基础例程
Parcel.CoreEngine.Helpers.ProcessHelper.UrlOpeningHandler
通常由服务器实现,然后与前端通信,以适当的方式打开程序/路径/网址。
Parcel.CoreEngine.Helpers.ProcessHelper.OpenFileWithDefaultProgramInterpreted()
通过委托 Parcel.CoreEngine.Helpers.ProcessHelper.OpenPathWithDefaultHandlerDelegate 寻找打开行为。
包装通常应该使用这个,而不是 。
Remarks
为了促进跨平台行为和客户端-服务器架构,使用默认程序打开文件/网址的行为(或者只是启动某些程序在用户端)应该最终由前端处理(例如,在网络环境中,如果我们打开一个进程/网址,它将由服务器启动,但我们真正想要的是在新的浏览器选项卡中打开那个网址);这个函数提供了一种间接方式,并将任务删除到任何特定的服务器/前端。
Parameters
| Name | Description | Default |
|---|---|---|
|
filePath |
成功打开文件
true或false
Parcel.CoreEngine.Helpers.StringHelper.SplitCommandLineArguments()
该方法可用于命令行参数和 CSV 行(不支持行转义)。
TODO: 此方法是否与 功能相同?如果是,我们应该合并这两者。
Remarks
在我之前编写的一些代码中,这也被称为 "SplitArgumentsLikeCsv"。
Parameters
| Name | Description | Default |
|---|---|---|
|
||
|
||
|
返回的参数列表
返回拆分后的参数列表。
Parcel.CoreEngine.Helpers.StringHelper.EscapeCSV()
Put strings together in a safe to parse way
Parcel.CoreEngine.Helpers.StringHelper.CountEnglishWords()
计算以空格分隔的句子中的英语单词数量。
Parcel.CoreEngine.Helpers.TypeHelper.IsNumericalType()
检查一个类型是否可以表示数字,默认情况下,包裹为双精度浮点数
Parameters
| Name | Description | Default |
|---|---|---|
type |
要检查的类型 |
返回布尔值
如果类型可以表示数字,则返回 true;否则返回 false。
Parcel.CoreEngine.Helpers.TypeHelper.TryParse()
给定某些数据的字符串表示形式,尝试根据优先级自动转换为强定义类型。
此函数总是成功的,因为在最坏的情况下,我们只需返回一个字符串。
Parameters
| Name | Description | Default |
|---|---|---|
|
输入的字符串 | |
|
输出的对象 |
返回的对象或字符串
返回已解析的对象或字符串
Parcel.CoreEngine.Helpers.XmlDocParameterParser.SplitParameterTypes()
将从 XML 文档中提取的参数列表字符串拆分为单个参数类型。处理泛型大括号语法。示例:“System.Double,System.Func{System.Double,System.Double}”
Parameters
| Name | Description | Default |
|---|---|---|
parameterList |
原始参数列表(例如,XML 文档中括号内的所有内容)。 |
参数类型数组
一个参数类型字符串的数组。
Parcel.CoreEngine.InstructionSets.InstructionSetMapping.ParcelCustomNameMappings
Remarks
A fully automatic FRONTEND should be able to identify ALL known names and map to correponding assemblies (and use defaults if necessary).
This is NOT to be handled by the engine/backend!
Parcel.CoreEngine.Messaging.StandardDeserialization
提供 StandardSerialization 的对应项
Parcel.CoreEngine.Messaging.StandardSerialization
提供Parcel对象的标准文本基础序列化服务
Parcel.CoreEngine.Metadata.PackageMetadata
Placeholder for package definition
Parcel.CoreEngine.MiniParcel.MiniParcelService.NodeIndex
表示 MiniParcel 命令中给定任何节点名称的节点索引。
Remarks
WIP; 正在等待与现有数据结构合并
Parcel.CoreEngine.MiniParcel.MiniParcelService.ParseAsNode()
获取当前可用上下文的原始完全展开节点定义
Parameters
| Name | Description | Default |
|---|---|---|
NodeGraphDocument |
||
System.String |
节点定义
返回节点定义
Parcel.CoreEngine.MiniParcel.MiniParcelService.ResolveTarget()
提供从传统/简写名称得到的标准化目标名称
Parameters
| Name | Description | Default |
|---|---|---|
|
targetName |
标准化目标名称
返回标准化的目标名称
Parcel.CoreEngine.Primitives.Bound
Defines an abstract 2D boundary
Parcel.CoreEngine.Primitives.GraphInputOutputDefinition.Comment
该条目的任何评论;用于图形文档目的。
Parcel.CoreEngine.Primitives.Number
Remarks
Consolidate with standard library NumberRoutines
Parcel.CoreEngine.Primitives.Range
数字滑块
Parcel.CoreEngine.Primitives.RawDataGrid
一种简单的 CSV 中间传输格式,用于在不同运行时之间以及在后端和前端之间传输 2D 数据网格
Parcel.CoreEngine.Primitives.RawDataGrid.#ctor()
用于在不同运行时以及后端和前端之间传递二维数据网格的简单CSV中间传输格式
Parameters
| Name | Description | Default |
|---|---|---|
|
path | |
|
hasHeader |
构造成功与否
返回值
Parcel.CoreEngine.Primitives.SimplexString
A string structure that can either represent a single scalar string or an array of strings
Parcel.CoreEngine.Primitives.Text
Multi-line string
Parcel.CoreEngine.Serialization.SectionedBinaryWriter
类似于 BinaryWriter,并提供完全相同的 API,不同的是这个类还进行了一些记录,因此可以检查、转储和记录文件格式结构。
在内部,它使用 BinaryWriter 将数据写入缓冲区,最终写入底层。
Parcel.CoreEngine.Serialization.SectionedBinaryWriter.Section
Sections can contain either subsections or fragments. Nested sections form a tree.
Parcel.CoreEngine.Serialization.SectionedBinaryWriter.Fragment
A record of each write operation, capturing the type written and the size (in bytes).
Parcel.CoreEngine.Serialization.SectionedBinaryWriter._buffer
临时缓冲区,收集有关文件结构的所有数据和信息。
Parcel.CoreEngine.Serialization.SectionedBinaryWriter._bufferWriter
An internal BinaryWriter writing to our buffer.
Parcel.CoreEngine.Serialization.SectionedBinaryWriter._underlying
将最终写入的实际“目标”流,同时附加文件结构的描述。
Parcel.CoreEngine.Serialization.SectionedBinaryWriter._root
The root section (if there is one) or first top-level section created.
Parcel.CoreEngine.Serialization.SectionedBinaryWriter._current
当前活动的部分(栈顶)。
Parcel.CoreEngine.Serialization.SectionedBinaryWriter._sectionsStack
A stack to track the nesting of sections.
Parcel.CoreEngine.Serialization.SectionedBinaryWriter.GenerateFileFormatDocumentation
打印为可读的树状结构
Parcel.CoreEngine.Serialization.SectionedBinaryWriter.Write7BitEncodedInt()
We also override the 7-bit encoded int method for completeness.
Parameters
| Name | Description | Default |
|---|---|---|
value |
The integer value to encode. |
返回值
The number of bytes written.
Parcel.CoreEngine.Serialization.SectionedBinaryWriter.WriteFileStructure()
将可反序列化的文件结构描述写入底层流
在实际数据缓冲区之前。
Parameters
| Name | Description | Default |
|---|---|---|
writer |
||
section |
无返回值
Parcel.CoreEngine.Serialization.TextSerializer
Remarks
Consider making it similar to Godot tscn format.
Parcel.CoreEngine.Serialization.ZoraParser
A simple CLI parser that parses each line into Node objects. The syntax is MiniParcel like but this parser doesn't handles any execution or node mapping.
Lines can be grouped into sections, which gives a Graph object.
Parcel.CoreEngine.Serialization.ZoraParser.Node.Callable
Remarks
Pending merging with Parcel.NExT.Interpreter.Types.Callable
Parcel.CoreEngine.Serialization.ZoraParser.Node.NextNode
Name of the next node to be executed.
Parcel.CoreEngine.Serialization.ZoraParser.Node.FindCallable()
Remarks
与PV1 Neo不同,在PV1 Neo中,每个ParcelNode都是已经强类型的 - 在ZoraParser或MiniParcel的情况下,尤其是由于可选参数的权限,我们无法仅通过比较字符串来判断特定节点定义是否与任何工具箱节点匹配。我们没有参数类型信息,也不知道在匹配函数上正式声明了多少个参数 - 我们实际上不得不搜索并与每个可用的方法(包括构造函数和属性)进行比较。
Parameters
| Name | Description | Default |
|---|---|---|
|
types |
返回结果
返回值
Parcel.CoreEngine.Serialization.Evaluator
Interprets nodes one by one to support sequential execution.
Parcel.CoreEngine.Standardization.UniquelyIdentifiableNaming
提供节点的唯一命名解决方案
Parcel.CoreEngine.Standardization.UniquelyIdentifiableNaming.TagUniqueNamesInSelfContainedNodes()
Remarks
当前实现不关心节点目标类型,只关注显式名称。
Parameters
| Name | Description | Default |
|---|---|---|
|
nodes |
成功标记的节点数量
int
Parcel.CoreEngine.Versioning.EngineVersion
这是整个 Parcel.NExT 实现中唯一的版本,并考虑了所有组件的变化,包括(规范)前端和后端;(此版本号可能会排除某些前端)
版本号应与 GitHub 上的发布号匹配,并与 csproj 的构建版本匹配
Parcel.CoreEngine.Versioning.EngineVersion.Changelog
格式: 版本, 关键摘要, 组件亮点, 时间线.
Parcel.CoreEngine.YAMLDSL.Ruth
基于文本的序列化/反序列化器,实现基于YAML的领域特定语言(DSL)。
这并不打算用于整个文档的序列化。
Remarks
截至2024年9月5日,虽然MiniParcel和合适的图形编辑器仍在开发中,并且DiOS和PSL仍在开发中,但在YAML中作为DSL的某种授权机制对于实验是有用的。
在未来,很可能会将其与TextSerializer合并。
(2024-09-13)在实施之前我们能否先进行RFC?我完全看不到这个的价值或必要性。比如,为什么我们不能仅仅使用基于Roslyn的纯脚本作为序列化?MiniParcel或YamlDSL到底实现了什么,我们用Pure无法实现的?(回答)Pure/Lua执行内容,但我们希望只是反序列化而不执行任何内容,即获取一个具有节点定义的Zora文档对象,以便我们可以在执行任何内容之前或代替执行任何内容进行分析。而且,“装饰性”细节例如装饰器(节点属性)在传统的过程式编程语言中并不是一个可用的概念,必须更可靠地在YAML或类似的声明性格式中表示。
(2024-09-19)就节点图而言 - 一切都可以表示为节点,但未来当我们有多媒体数据(图像、3D网格)时,使用专门的序列化格式更有效地表示更为高效(即使它们始终可以转换为字符串)以便于清晰处理。
(2024-09-19)为了最大限度地可移植性并避免程序集依赖,我们没有使用YAMLDotNet,而是实现了具体的(反)序列化例程。
返回值
无
Parcel.CoreEngine.YAMLDSL.Ruth.AbstractNode
A node can represent any type of data: node itself, graphs, document metadata, etc.
Parcel.CoreEngine.YAMLDSL.Ruth.AbstractNode.Target
Format: "ClassName.MethodName"
Or some system node target names.
返回结果
返回结果描述
Parcel.CoreEngine.YAMLDSL.Ruth.AbstractDecorator.FindType()
查找一个具有与属性的键和值匹配的构造函数的类型
Parameters
| Name | Description | Default |
|---|---|---|
|
types |
返回匹配类型
返回匹配的类型
Parcel.Neo.Base.Serialization.GraphMode
流程图模式或执行范式。
Parcel.Neo.Base.Serialization.GraphMode.Dataflow
数据流编程,具有最少状态。
Parcel.Neo.Base.Serialization.GraphMode.Procedural
过程化编程,具有许多状态。
Parcel.Neo.Base.Serialization.PV1NeoDocument
A representation of serialized document
Parcel.Neo.Base.Serialization.PV1NeoDocument.RuntimeMetadata.FileFormatVersion
Remarks
历史版本:
1.0:仅支持单个图形文档,其中运行时元数据和文档元数据包含在图构造中。图形没有图形元数据。
PV1Neo 1.1:单个文档,多个图形;图形具有图形元数据。
Parcel.Neo.Base.Serialization.PV1NeoDocument.NodeData.NodeType
Full name of corresponding type
Parcel.Neo.Base.Serialization.PV1NeoDocument.ConnectionData
Remarks
Remark-cz: 注意连接/连接器的概念是多余的,完全不必要,并且使处理变得复杂;这让人想起PV1 Neo和Nodify框架,我们很快会优化掉它。
Parcel.Neo.Base.Serialization.PV1NeoDocument.LegacyFileVersion1VersionString
2024年7月至8月之间使用
Parcel.Neo.Base.Serialization.PV1NeoDocument.LegacyFileVersion2VersionString
用于2024年8月及之后
SimpleJson.JsonArray
Represents the json array.
SimpleJson.JsonArray.#ctor
Initializes a new instance of the SimpleJson.JsonArray class.
SimpleJson.JsonArray.#ctor()
初始化 SimpleJson.JsonArray 类的新实例。
Parameters
| Name | Description | Default |
|---|---|---|
capacity |
json 数组的容量。 |
返回值
无
SimpleJson.JsonArray.ToString
数组的 JSON 表示。
数组的 JSON 表示
数组的 JSON 表示。
SimpleJson.JsonObject
表示 JSON 对象。
SimpleJson.JsonObject._members
The internal member dictionary.
SimpleJson.JsonObject.#ctor
初始化 SimpleJson.JsonObject 的新实例。
SimpleJson.JsonObject.#ctor()
初始化 SimpleJson.JsonObject 的新实例。
Parameters
| Name | Description | Default |
|---|---|---|
comparer |
用于比较键的 System.Collections.Generic.IEqualityComparer`1 实现,或者为 null 以使用该键类型的默认 System.Collections.Generic.EqualityComparer`1。 |
返回的 JsonObject 实例
新创建的 JsonObject 实例。
SimpleJson.JsonObject.Item()
获取指定索引处的 System.Object。
SimpleJson.JsonObject.Add()
添加指定的键。
Parameters
| Name | Description | Default |
|---|---|---|
key |
键。 | |
value |
值。 |
添加返回值
无返回值。
SimpleJson.JsonObject.ContainsKey()
确定指定的键是否包含键。
Parameters
| Name | Description | Default |
|---|---|---|
key |
键。 |
返回值
true 如果指定的键包含键;否则,false。
SimpleJson.JsonObject.Keys
获取键。
SimpleJson.JsonObject.Remove()
移除指定的键。
Parameters
| Name | Description | Default |
|---|---|---|
key |
键。 |
返回值
无返回值。
SimpleJson.JsonObject.TryGetValue()
尝试获取值。
Parameters
| Name | Description | Default |
|---|---|---|
key |
键。 | |
value |
值。 |
返回值
返回值。
SimpleJson.JsonObject.Values
获取值。
返回值
返回的值。
SimpleJson.JsonObject.Item()
获取或设置具有指定键的 System.Object。
Parameters
| Name | Description | Default |
|---|---|---|
key |
值
返回与指定键相关联的值。
SimpleJson.JsonObject.Add()
添加指定的项。
Parameters
| Name | Description | Default |
|---|---|---|
item |
项。 |
返回结果
返回操作结果。
SimpleJson.JsonObject.Clear
清除此实例。
SimpleJson.JsonObject.Contains()
确定是否包含指定项。
Parameters
| Name | Description | Default |
|---|---|---|
item |
项。 |
返回值
如果包含指定项,则
true;否则,false。
SimpleJson.JsonObject.CopyTo()
复制到。
Parameters
| Name | Description | Default |
|---|---|---|
array |
数组。 | |
arrayIndex |
数组的索引。 |
返回值
无返回值。
SimpleJson.JsonObject.Count
获取计数。
SimpleJson.JsonObject.IsReadOnly
获取一个值,该值指示此实例是否为只读。
SimpleJson.JsonObject.Remove()
移除指定的项。
Parameters
| Name | Description | Default |
|---|---|---|
item |
项。 |
返回值
无返回值。
SimpleJson.JsonObject.GetEnumerator
获取枚举器。
返回枚举器
返回枚举器
SimpleJson.JsonObject.System#Collections#IEnumerable#GetEnumerator
返回一个枚举数,用于迭代集合。
返回一个用于迭代的枚举器
一个 System.Collections.IEnumerator 对象,可以用于迭代集合。
SimpleJson.JsonObject.ToString
返回一个表示当前 System.Object 的 json System.String。
返回的 JSON 字符串
一个表示当前 System.Object 的 json System.String。
SimpleJson.SimpleJson
这个类编码和解码 JSON 字符串。
具体细节,请参见 http://www.json.org/
JSON 使用数组和对象。在这里,它们对应于数据类型 JsonArray(IList<object>) 和 JsonObject(IDictionary<string,object>)。
所有数字都会被解析为双精度浮点数。
SimpleJson.SimpleJson.DeserializeObject()
解析字符串 json 为一个值
Parameters
| Name | Description | Default |
|---|---|---|
json |
一个 JSON 字符串。 |
返回的值
返回一个 IList<object>、一个 IDictionary<string,object>、一个 double、一个 string、null、true 或 false。
SimpleJson.SimpleJson.TryDeserializeObject()
尝试将 JSON 字符串解析为一个值。
Parameters
| Name | Description | Default |
|---|---|---|
json |
一个 JSON 字符串。 | |
obj |
对象。 |
返回结果
如果成功则返回 true,否则返回 false。
SimpleJson.SimpleJson.SerializeObject()
将 IDictionary<string,object> / IList<object> 对象转换为 JSON 字符串
Parameters
| Name | Description | Default |
|---|---|---|
json |
一个 IDictionary<string,object> / IList<object> | |
jsonSerializerStrategy |
要使用的序列化策略 |
返回的 JSON 字符串
一个 JSON 编码的字符串,如果对象 'json' 不可序列化,则返回 null
SimpleJson.SimpleJson.IsNumeric()
确定给定对象是否为数字(可以是整数、双精度、空等)。
Parameters
| Name | Description | Default |
|---|---|---|
value |
是否为数字
返回一个布尔值,指示对象是否为数字。