main 4c97002

model.go RawHistoryFolder

1package model
2
3// Model represents the checked-in binding model for PipeWire/SPA code generation.
4type Model struct {
5	Libraries    []Library     `json:"libraries"`
6	Groups       []Group       `json:"groups"`
7	Symbols      []Symbol      `json:"symbols"`
8	Callbacks    []Callback    `json:"callbacks,omitempty"`
9	EventStructs []EventStruct `json:"event_structs,omitempty"`
10}
11
12// Library represents a shared library to load at runtime.
13type Library struct {
14	Name   string `json:"name"`
15	SOName string `json:"soname"`
16}
17
18// Group represents a logical grouping of symbols.
19type Group struct {
20	Name      string   `json:"name"`
21	Symbols   []string `json:"symbols"`
22	Interface string   `json:"interface"`
23	Package   string   `json:"package"`
24}
25
26// Symbol represents a single C function to bind.
27type Symbol struct {
28	Name      string `json:"name"`
29	Library   string `json:"library"`
30	Signature string `json:"signature"`
31	Optional  bool   `json:"optional,omitempty"`
32	Group     string `json:"group"`
33}
34
35// Callback represents a C callback typedef to generate.
36type Callback struct {
37	Name      string `json:"name"`
38	Signature string `json:"signature"`
39	Group     string `json:"group"`
40}
41
42// EventStruct represents an event struct with its associated callbacks.
43type EventStruct struct {
44	Name      string   `json:"name"`
45	Callbacks []string `json:"callbacks"`
46	Group     string   `json:"group"`
47}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 8

↑↓ moveenter openesc close