Doc :: struct {
header: Doc_Header
packages: [] Doc_Package
procedures: [] Doc_Procedure
structures: [] Doc_Structure
enumerations: [] Doc_Enum
distinct_types: [] Doc_Distinct_Type
unions: [] Doc_Union
files: [] Doc_File
}
Doc_Distinct_Type :: struct {
base: Doc_Entity
wrapped_type: [] u8
methods: [] Doc_Procedure
}
Doc_Entity :: struct {
name: [] u8
visibility: Doc_Visibility
package_id: Doc_Package.Id
location: Doc_Location
notes: [] u8
}
Doc_Enum_Value :: struct {
name: [] u8
value: u64
}
Doc_Enum :: struct {
base: Doc_Entity
values: [] Doc_Enum_Value
flags: Doc_Enum.Flags
}
Doc_File :: struct {
package_id: Doc_Package.Id
name: [] u8
}
Doc_Location :: struct {
file_id: Doc_File.Id
line: i32
col: i32
}
Doc_Package :: struct {
id: Doc_Package.Id
name: [] u8
qualified_name: [] u8
parent: Doc_Package.Id
subpackages: [] Doc_Package.Id
notes: [] [] u8
}
Doc_Param :: struct {
name: [] u8
type: [] u8
default_value: [] u8
}
Doc_Procedure :: struct {
base: Doc_Entity
flags: Doc_Procedure.Flags
params: [] Doc_Param
return_type: [] u8
overloads: [] Doc_Procedure
constraints: [] [] u8
}
Doc_Structure :: struct {
base: Doc_Entity
members: [] Doc_Structure_Member
polymorph_arguments: [] Doc_Param
constraints: [] [] u8
methods: [] Doc_Procedure
}
Doc_Structure_Member :: struct {
name: [] u8
type: [] u8
default_value: [] u8
flags: Doc_Structure_Member.Flags
}
Doc_Union :: struct {
base: Doc_Entity
variants: [] Doc_Union_Variant
polymorph_arguments: [] Doc_Param
constraints: [] [] u8
methods: [] Doc_Procedure
}
Doc_Union_Variant :: struct {
name: [] u8
type: [] u8
}
Doc_Visibility :: enum {
Public :: 1
Package :: 2
Local :: 3
}