cli/docs/services/core.md
Snider d5f7764329 Refactor library improvements (#18)
* refactor: Rearchitect library to use runtime and pkg modules

This commit introduces a major architectural refactoring to simplify the library's structure and improve its maintainability.

Key changes include:

- **Simplified Project Structure:** All top-level facade packages (config, crypt, display, etc.) and the root `core.go` have been removed. All library code now resides directly under the `pkg/` directory.

- **Unified Runtime:** A new `pkg/runtime` module with a `New()` constructor has been introduced. This function initializes and wires together all core services, providing a single, convenient entry point for applications.

- **Updated Entry Points:** The `cmd/core-gui` application and all examples have been updated to use the new `runtime.New()` initialization.

- **Internal Packages:** The `config` and `crypt` packages have been refactored to use an `internal` subdirectory for their implementation. This hides private details and exposes a clean, stable public API.

- **Standardized Error Handling:** A new error handling package has been added at `pkg/e`. The `workspace` and `crypt` services have been updated to use this new standard.

- **Improved Feature Flagging:** A `IsFeatureEnabled` method was added to the `config` service for more robust and centralized feature flag checks.

- **CI and Dependencies:**
  - A GitHub Actions workflow has been added for continuous integration.
  - All Go dependencies have been updated to their latest versions.

- **Documentation:** All documentation has been updated to reflect the new, simplified architecture, and obsolete files have been removed.

* refactor: Rearchitect library to use runtime and pkg modules

This commit introduces a major architectural refactoring to simplify the library's structure and improve its maintainability.

Key changes include:

- **Simplified Project Structure:** All top-level facade packages (config, crypt, display, etc.) and the root `core.go` have been removed. All library code now resides directly under the `pkg/` directory.

- **Unified Runtime:** A new `pkg/runtime` module with a `New()` constructor has been introduced. This function initializes and wires together all core services, providing a single, convenient entry point for applications. The runtime now accepts the Wails application instance, ensuring proper integration with the GUI.

- **Updated Entry Points:** The `cmd/core-gui` application and all examples have been updated to use the new `runtime.New()` constructor and correctly register the runtime as a Wails service.

- **Internal Packages:** The `config` and `crypt` packages have been refactored to use an `internal` subdirectory for their implementation. This hides private details and exposes a clean, stable public API.

- **Standardized Error Handling:** A new error handling package has been added at `pkg/e`. The `workspace` and `crypt` services have been updated to use this new standard.

- **Improved Feature Flagging:** A `IsFeatureEnabled` method was added to the `config` service for more robust and centralized feature flag checks.

- **CI and Dependencies:**
  - A GitHub Actions workflow has been added for continuous integration.
  - All Go dependencies have been updated to their latest versions.

- **Documentation:** All documentation has been updated to reflect the new, simplified architecture, and obsolete files have been removed.

* Feature tdd contract testing (#19)

* feat: Implement TDD contract testing for public API

This commit introduces a Test-Driven Development (TDD) workflow to enforce the public API contract. A new `tdd/` directory has been added to house these tests, which are intended to be the starting point for any new features or bug fixes that affect the public interface.

The "Good, Bad, Ugly" testing methodology has been adopted for these tests:
- `_Good` tests verify the "happy path" with valid inputs.
- `_Bad` tests verify predictable errors with invalid inputs.
- `_Ugly` tests verify edge cases and unexpected inputs to prevent panics.

TDD contract tests have been implemented for the `core` and `config` packages, and the `core.New` function has been hardened to prevent panics from `nil` options.

The `README.md` has been updated to document this new workflow.

* feat: Add TDD contract tests for all services

This commit expands the TDD contract testing framework to cover all services in the application. "Good, Bad, Ugly" tests have been added for the `help`, `i18n`, and `workspace` services.

To facilitate testing, the following refactors were made:
- `help`: Added a `SetDisplay` method to allow for mock injection. Hardened `Show` and `ShowAt` to prevent panics.
- `i18n`: Added a `SetBundle` method to allow for loading test-specific localization files.
- `workspace`: Made the `Config` field public and added a `SetMedium` method to allow for mock injection.

The TDD tests for the `crypt` service have been skipped due to issues with PGP key generation in the test environment.

* CLI code-docgen function (#16)

* Refactor CLI structure: move commands to 'dev' package, add docstring generation command, and update Taskfile for new tasks

Signed-off-by: Snider <snider@lt.hn>

* Add CodeRabbit PR review badge to README

Signed-off-by: Snider <snider@lt.hn>

---------

Signed-off-by: Snider <snider@lt.hn>

---------

Signed-off-by: Snider <snider@lt.hn>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>

* Update pkg/runtime/runtime.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: Rearchitect library and add automated documentation

This commit introduces a major architectural refactoring of the Core library and adds a new, automated documentation system.

**Architectural Changes:**

*   **Unified Runtime:** A new `pkg/runtime` module provides a single `runtime.New()` constructor that initializes and manages all core services. This simplifies application startup and improves maintainability.
*   **Wails Integration:** The `Runtime` is now correctly integrated with the Wails application lifecycle, accepting the `*application.App` instance and being registered as a Wails service.
*   **Simplified Project Structure:** All top-level facade packages have been removed, and library code is now consolidated under the `pkg/` directory.
*   **Internal Packages:** The `config` and `crypt` services now use an `internal` package to enforce a clean separation between public API and implementation details.
*   **Standardized Error Handling:** The `pkg/e` package has been introduced and integrated into the `workspace` and `crypt` services for consistent error handling.
*   **Graceful Shutdown:** The shutdown process has been fixed to ensure shutdown signals are correctly propagated to all services.

**Documentation:**

*   **Automated Doc Generation:** A new `docgen` command has been added to `cmd/core` to automatically generate Markdown documentation from the service source code.
*   **MkDocs Site:** A new MkDocs Material documentation site has been configured in the `/docs` directory.
*   **Deployment Workflow:** A new GitHub Actions workflow (`.github/workflows/docs.yml`) automatically builds and deploys the documentation site to GitHub Pages.

**Quality Improvements:**

*   **Hermetic Tests:** The config service tests have been updated to be fully hermetic, running in a temporary environment to avoid side effects.
*   **Panic Fix:** A panic in the config service's `Set` method has been fixed, and "Good, Bad, Ugly" tests have been added to verify the fix.
*   **CI/CD:** The CI workflow has been updated to use the latest GitHub Actions.
*   **Code Quality:** Numerous smaller fixes and improvements have been made based on CI feedback.

---------

Signed-off-by: Snider <snider@lt.hn>
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-11-02 16:17:25 +00:00

3272 lines
139 KiB
Markdown

---
title: core
---
# Service: `core`
## Types
### `type ActionDisplayOpenWindow`
```go
type ActionDisplayOpenWindow 0 *ast.StructType {
1 . Struct: -
2 . Fields: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 2) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "Name"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: var
13 . . . . . . . Name: "Name"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.Ident {
21 . . . . . NamePos: -
22 . . . . . Name: "string"
23 . . . . . Obj: nil
24 . . . . }
25 . . . . Tag: nil
26 . . . . Comment: nil
27 . . . }
28 . . . 1: *ast.Field {
29 . . . . Doc: nil
30 . . . . Names: []*ast.Ident (len = 1) {
31 . . . . . 0: *ast.Ident {
32 . . . . . . NamePos: -
33 . . . . . . Name: "Options"
34 . . . . . . Obj: *ast.Object {
35 . . . . . . . Kind: var
36 . . . . . . . Name: "Options"
37 . . . . . . . Decl: *(obj @ 28)
38 . . . . . . . Data: nil
39 . . . . . . . Type: nil
40 . . . . . . }
41 . . . . . }
42 . . . . }
43 . . . . Type: *ast.SelectorExpr {
44 . . . . . X: *ast.Ident {
45 . . . . . . NamePos: -
46 . . . . . . Name: "application"
47 . . . . . . Obj: nil
48 . . . . . }
49 . . . . . Sel: *ast.Ident {
50 . . . . . . NamePos: -
51 . . . . . . Name: "WebviewWindowOptions"
52 . . . . . . Obj: nil
53 . . . . . }
54 . . . . }
55 . . . . Tag: nil
56 . . . . Comment: nil
57 . . . }
58 . . }
59 . . Closing: -
60 . }
61 . Incomplete: false
62 }
```
ActionDisplayOpenWindow is a structured message for requesting a new window.
### `type ActionServiceShutdown`
```go
type ActionServiceShutdown 0 *ast.StructType {
1 . Struct: -
2 . Fields: *ast.FieldList {
3 . . Opening: -
4 . . List: nil
5 . . Closing: -
6 . }
7 . Incomplete: false
8 }
```
### `type ActionServiceStartup`
```go
type ActionServiceStartup 0 *ast.StructType {
1 . Struct: -
2 . Fields: *ast.FieldList {
3 . . Opening: -
4 . . List: nil
5 . . Closing: -
6 . }
7 . Incomplete: false
8 }
```
### `type Config`
```go
type Config 0 *ast.InterfaceType {
1 . Interface: -
2 . Methods: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 2) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "Get"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: func
13 . . . . . . . Name: "Get"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.FuncType {
21 . . . . . Func: -
22 . . . . . TypeParams: nil
23 . . . . . Params: *ast.FieldList {
24 . . . . . . Opening: -
25 . . . . . . List: []*ast.Field (len = 2) {
26 . . . . . . . 0: *ast.Field {
27 . . . . . . . . Doc: nil
28 . . . . . . . . Names: []*ast.Ident (len = 1) {
29 . . . . . . . . . 0: *ast.Ident {
30 . . . . . . . . . . NamePos: -
31 . . . . . . . . . . Name: "key"
32 . . . . . . . . . . Obj: *ast.Object {
33 . . . . . . . . . . . Kind: var
34 . . . . . . . . . . . Name: "key"
35 . . . . . . . . . . . Decl: *(obj @ 26)
36 . . . . . . . . . . . Data: nil
37 . . . . . . . . . . . Type: nil
38 . . . . . . . . . . }
39 . . . . . . . . . }
40 . . . . . . . . }
41 . . . . . . . . Type: *ast.Ident {
42 . . . . . . . . . NamePos: -
43 . . . . . . . . . Name: "string"
44 . . . . . . . . . Obj: nil
45 . . . . . . . . }
46 . . . . . . . . Tag: nil
47 . . . . . . . . Comment: nil
48 . . . . . . . }
49 . . . . . . . 1: *ast.Field {
50 . . . . . . . . Doc: nil
51 . . . . . . . . Names: []*ast.Ident (len = 1) {
52 . . . . . . . . . 0: *ast.Ident {
53 . . . . . . . . . . NamePos: -
54 . . . . . . . . . . Name: "out"
55 . . . . . . . . . . Obj: *ast.Object {
56 . . . . . . . . . . . Kind: var
57 . . . . . . . . . . . Name: "out"
58 . . . . . . . . . . . Decl: *(obj @ 49)
59 . . . . . . . . . . . Data: nil
60 . . . . . . . . . . . Type: nil
61 . . . . . . . . . . }
62 . . . . . . . . . }
63 . . . . . . . . }
64 . . . . . . . . Type: *ast.Ident {
65 . . . . . . . . . NamePos: -
66 . . . . . . . . . Name: "any"
67 . . . . . . . . . Obj: nil
68 . . . . . . . . }
69 . . . . . . . . Tag: nil
70 . . . . . . . . Comment: nil
71 . . . . . . . }
72 . . . . . . }
73 . . . . . . Closing: -
74 . . . . . }
75 . . . . . Results: *ast.FieldList {
76 . . . . . . Opening: -
77 . . . . . . List: []*ast.Field (len = 1) {
78 . . . . . . . 0: *ast.Field {
79 . . . . . . . . Doc: nil
80 . . . . . . . . Names: nil
81 . . . . . . . . Type: *ast.Ident {
82 . . . . . . . . . NamePos: -
83 . . . . . . . . . Name: "error"
84 . . . . . . . . . Obj: nil
85 . . . . . . . . }
86 . . . . . . . . Tag: nil
87 . . . . . . . . Comment: nil
88 . . . . . . . }
89 . . . . . . }
90 . . . . . . Closing: -
91 . . . . . }
92 . . . . }
93 . . . . Tag: nil
94 . . . . Comment: nil
95 . . . }
96 . . . 1: *ast.Field {
97 . . . . Doc: nil
98 . . . . Names: []*ast.Ident (len = 1) {
99 . . . . . 0: *ast.Ident {
100 . . . . . . NamePos: -
101 . . . . . . Name: "Set"
102 . . . . . . Obj: *ast.Object {
103 . . . . . . . Kind: func
104 . . . . . . . Name: "Set"
105 . . . . . . . Decl: *(obj @ 96)
106 . . . . . . . Data: nil
107 . . . . . . . Type: nil
108 . . . . . . }
109 . . . . . }
110 . . . . }
111 . . . . Type: *ast.FuncType {
112 . . . . . Func: -
113 . . . . . TypeParams: nil
114 . . . . . Params: *ast.FieldList {
115 . . . . . . Opening: -
116 . . . . . . List: []*ast.Field (len = 2) {
117 . . . . . . . 0: *ast.Field {
118 . . . . . . . . Doc: nil
119 . . . . . . . . Names: []*ast.Ident (len = 1) {
120 . . . . . . . . . 0: *ast.Ident {
121 . . . . . . . . . . NamePos: -
122 . . . . . . . . . . Name: "key"
123 . . . . . . . . . . Obj: *ast.Object {
124 . . . . . . . . . . . Kind: var
125 . . . . . . . . . . . Name: "key"
126 . . . . . . . . . . . Decl: *(obj @ 117)
127 . . . . . . . . . . . Data: nil
128 . . . . . . . . . . . Type: nil
129 . . . . . . . . . . }
130 . . . . . . . . . }
131 . . . . . . . . }
132 . . . . . . . . Type: *ast.Ident {
133 . . . . . . . . . NamePos: -
134 . . . . . . . . . Name: "string"
135 . . . . . . . . . Obj: nil
136 . . . . . . . . }
137 . . . . . . . . Tag: nil
138 . . . . . . . . Comment: nil
139 . . . . . . . }
140 . . . . . . . 1: *ast.Field {
141 . . . . . . . . Doc: nil
142 . . . . . . . . Names: []*ast.Ident (len = 1) {
143 . . . . . . . . . 0: *ast.Ident {
144 . . . . . . . . . . NamePos: -
145 . . . . . . . . . . Name: "v"
146 . . . . . . . . . . Obj: *ast.Object {
147 . . . . . . . . . . . Kind: var
148 . . . . . . . . . . . Name: "v"
149 . . . . . . . . . . . Decl: *(obj @ 140)
150 . . . . . . . . . . . Data: nil
151 . . . . . . . . . . . Type: nil
152 . . . . . . . . . . }
153 . . . . . . . . . }
154 . . . . . . . . }
155 . . . . . . . . Type: *ast.Ident {
156 . . . . . . . . . NamePos: -
157 . . . . . . . . . Name: "any"
158 . . . . . . . . . Obj: nil
159 . . . . . . . . }
160 . . . . . . . . Tag: nil
161 . . . . . . . . Comment: nil
162 . . . . . . . }
163 . . . . . . }
164 . . . . . . Closing: -
165 . . . . . }
166 . . . . . Results: *ast.FieldList {
167 . . . . . . Opening: -
168 . . . . . . List: []*ast.Field (len = 1) {
169 . . . . . . . 0: *ast.Field {
170 . . . . . . . . Doc: nil
171 . . . . . . . . Names: nil
172 . . . . . . . . Type: *ast.Ident {
173 . . . . . . . . . NamePos: -
174 . . . . . . . . . Name: "error"
175 . . . . . . . . . Obj: nil
176 . . . . . . . . }
177 . . . . . . . . Tag: nil
178 . . . . . . . . Comment: nil
179 . . . . . . . }
180 . . . . . . }
181 . . . . . . Closing: -
182 . . . . . }
183 . . . . }
184 . . . . Tag: nil
185 . . . . Comment: nil
186 . . . }
187 . . }
188 . . Closing: -
189 . }
190 . Incomplete: false
191 }
```
Config provides access to application configuration.
### `type Contract`
```go
type Contract 0 *ast.StructType {
1 . Struct: -
2 . Fields: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 2) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "DontPanic"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: var
13 . . . . . . . Name: "DontPanic"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.Ident {
21 . . . . . NamePos: -
22 . . . . . Name: "bool"
23 . . . . . Obj: nil
24 . . . . }
25 . . . . Tag: nil
26 . . . . Comment: nil
27 . . . }
28 . . . 1: *ast.Field {
29 . . . . Doc: nil
30 . . . . Names: []*ast.Ident (len = 1) {
31 . . . . . 0: *ast.Ident {
32 . . . . . . NamePos: -
33 . . . . . . Name: "DisableLogging"
34 . . . . . . Obj: *ast.Object {
35 . . . . . . . Kind: var
36 . . . . . . . Name: "DisableLogging"
37 . . . . . . . Decl: *(obj @ 28)
38 . . . . . . . Data: nil
39 . . . . . . . Type: nil
40 . . . . . . }
41 . . . . . }
42 . . . . }
43 . . . . Type: *ast.Ident {
44 . . . . . NamePos: -
45 . . . . . Name: "bool"
46 . . . . . Obj: nil
47 . . . . }
48 . . . . Tag: nil
49 . . . . Comment: nil
50 . . . }
51 . . }
52 . . Closing: -
53 . }
54 . Incomplete: false
55 }
```
### `type Core`
```go
type Core 0 *ast.StructType {
1 . Struct: -
2 . Fields: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 10) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "once"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: var
13 . . . . . . . Name: "once"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.SelectorExpr {
21 . . . . . X: *ast.Ident {
22 . . . . . . NamePos: -
23 . . . . . . Name: "sync"
24 . . . . . . Obj: nil
25 . . . . . }
26 . . . . . Sel: *ast.Ident {
27 . . . . . . NamePos: -
28 . . . . . . Name: "Once"
29 . . . . . . Obj: nil
30 . . . . . }
31 . . . . }
32 . . . . Tag: nil
33 . . . . Comment: nil
34 . . . }
35 . . . 1: *ast.Field {
36 . . . . Doc: nil
37 . . . . Names: []*ast.Ident (len = 1) {
38 . . . . . 0: *ast.Ident {
39 . . . . . . NamePos: -
40 . . . . . . Name: "initErr"
41 . . . . . . Obj: *ast.Object {
42 . . . . . . . Kind: var
43 . . . . . . . Name: "initErr"
44 . . . . . . . Decl: *(obj @ 35)
45 . . . . . . . Data: nil
46 . . . . . . . Type: nil
47 . . . . . . }
48 . . . . . }
49 . . . . }
50 . . . . Type: *ast.Ident {
51 . . . . . NamePos: -
52 . . . . . Name: "error"
53 . . . . . Obj: nil
54 . . . . }
55 . . . . Tag: nil
56 . . . . Comment: nil
57 . . . }
58 . . . 2: *ast.Field {
59 . . . . Doc: nil
60 . . . . Names: []*ast.Ident (len = 1) {
61 . . . . . 0: *ast.Ident {
62 . . . . . . NamePos: -
63 . . . . . . Name: "App"
64 . . . . . . Obj: *ast.Object {
65 . . . . . . . Kind: var
66 . . . . . . . Name: "App"
67 . . . . . . . Decl: *(obj @ 58)
68 . . . . . . . Data: nil
69 . . . . . . . Type: nil
70 . . . . . . }
71 . . . . . }
72 . . . . }
73 . . . . Type: *ast.StarExpr {
74 . . . . . Star: -
75 . . . . . X: *ast.SelectorExpr {
76 . . . . . . X: *ast.Ident {
77 . . . . . . . NamePos: -
78 . . . . . . . Name: "application"
79 . . . . . . . Obj: nil
80 . . . . . . }
81 . . . . . . Sel: *ast.Ident {
82 . . . . . . . NamePos: -
83 . . . . . . . Name: "App"
84 . . . . . . . Obj: nil
85 . . . . . . }
86 . . . . . }
87 . . . . }
88 . . . . Tag: nil
89 . . . . Comment: nil
90 . . . }
91 . . . 3: *ast.Field {
92 . . . . Doc: nil
93 . . . . Names: []*ast.Ident (len = 1) {
94 . . . . . 0: *ast.Ident {
95 . . . . . . NamePos: -
96 . . . . . . Name: "assets"
97 . . . . . . Obj: *ast.Object {
98 . . . . . . . Kind: var
99 . . . . . . . Name: "assets"
100 . . . . . . . Decl: *(obj @ 91)
101 . . . . . . . Data: nil
102 . . . . . . . Type: nil
103 . . . . . . }
104 . . . . . }
105 . . . . }
106 . . . . Type: *ast.SelectorExpr {
107 . . . . . X: *ast.Ident {
108 . . . . . . NamePos: -
109 . . . . . . Name: "embed"
110 . . . . . . Obj: nil
111 . . . . . }
112 . . . . . Sel: *ast.Ident {
113 . . . . . . NamePos: -
114 . . . . . . Name: "FS"
115 . . . . . . Obj: nil
116 . . . . . }
117 . . . . }
118 . . . . Tag: nil
119 . . . . Comment: nil
120 . . . }
121 . . . 4: *ast.Field {
122 . . . . Doc: nil
123 . . . . Names: []*ast.Ident (len = 1) {
124 . . . . . 0: *ast.Ident {
125 . . . . . . NamePos: -
126 . . . . . . Name: "serviceLock"
127 . . . . . . Obj: *ast.Object {
128 . . . . . . . Kind: var
129 . . . . . . . Name: "serviceLock"
130 . . . . . . . Decl: *(obj @ 121)
131 . . . . . . . Data: nil
132 . . . . . . . Type: nil
133 . . . . . . }
134 . . . . . }
135 . . . . }
136 . . . . Type: *ast.Ident {
137 . . . . . NamePos: -
138 . . . . . Name: "bool"
139 . . . . . Obj: nil
140 . . . . }
141 . . . . Tag: nil
142 . . . . Comment: nil
143 . . . }
144 . . . 5: *ast.Field {
145 . . . . Doc: nil
146 . . . . Names: []*ast.Ident (len = 1) {
147 . . . . . 0: *ast.Ident {
148 . . . . . . NamePos: -
149 . . . . . . Name: "ipcMu"
150 . . . . . . Obj: *ast.Object {
151 . . . . . . . Kind: var
152 . . . . . . . Name: "ipcMu"
153 . . . . . . . Decl: *(obj @ 144)
154 . . . . . . . Data: nil
155 . . . . . . . Type: nil
156 . . . . . . }
157 . . . . . }
158 . . . . }
159 . . . . Type: *ast.SelectorExpr {
160 . . . . . X: *ast.Ident {
161 . . . . . . NamePos: -
162 . . . . . . Name: "sync"
163 . . . . . . Obj: nil
164 . . . . . }
165 . . . . . Sel: *ast.Ident {
166 . . . . . . NamePos: -
167 . . . . . . Name: "RWMutex"
168 . . . . . . Obj: nil
169 . . . . . }
170 . . . . }
171 . . . . Tag: nil
172 . . . . Comment: nil
173 . . . }
174 . . . 6: *ast.Field {
175 . . . . Doc: nil
176 . . . . Names: []*ast.Ident (len = 1) {
177 . . . . . 0: *ast.Ident {
178 . . . . . . NamePos: -
179 . . . . . . Name: "ipcHandlers"
180 . . . . . . Obj: *ast.Object {
181 . . . . . . . Kind: var
182 . . . . . . . Name: "ipcHandlers"
183 . . . . . . . Decl: *(obj @ 174)
184 . . . . . . . Data: nil
185 . . . . . . . Type: nil
186 . . . . . . }
187 . . . . . }
188 . . . . }
189 . . . . Type: *ast.ArrayType {
190 . . . . . Lbrack: -
191 . . . . . Len: nil
192 . . . . . Elt: *ast.FuncType {
193 . . . . . . Func: -
194 . . . . . . TypeParams: nil
195 . . . . . . Params: *ast.FieldList {
196 . . . . . . . Opening: -
197 . . . . . . . List: []*ast.Field (len = 2) {
198 . . . . . . . . 0: *ast.Field {
199 . . . . . . . . . Doc: nil
200 . . . . . . . . . Names: nil
201 . . . . . . . . . Type: *ast.StarExpr {
202 . . . . . . . . . . Star: -
203 . . . . . . . . . . X: *ast.Ident {
204 . . . . . . . . . . . NamePos: -
205 . . . . . . . . . . . Name: "Core"
206 . . . . . . . . . . . Obj: *ast.Object {
207 . . . . . . . . . . . . Kind: type
208 . . . . . . . . . . . . Name: "Core"
209 . . . . . . . . . . . . Decl: *ast.TypeSpec {
210 . . . . . . . . . . . . . Doc: nil
211 . . . . . . . . . . . . . Name: *ast.Ident {
212 . . . . . . . . . . . . . . NamePos: -
213 . . . . . . . . . . . . . . Name: "Core"
214 . . . . . . . . . . . . . . Obj: *(obj @ 206)
215 . . . . . . . . . . . . . }
216 . . . . . . . . . . . . . TypeParams: nil
217 . . . . . . . . . . . . . Assign: -
218 . . . . . . . . . . . . . Type: *(obj @ 0)
219 . . . . . . . . . . . . . Comment: nil
220 . . . . . . . . . . . . }
221 . . . . . . . . . . . . Data: nil
222 . . . . . . . . . . . . Type: nil
223 . . . . . . . . . . . }
224 . . . . . . . . . . }
225 . . . . . . . . . }
226 . . . . . . . . . Tag: nil
227 . . . . . . . . . Comment: nil
228 . . . . . . . . }
229 . . . . . . . . 1: *ast.Field {
230 . . . . . . . . . Doc: nil
231 . . . . . . . . . Names: nil
232 . . . . . . . . . Type: *ast.Ident {
233 . . . . . . . . . . NamePos: -
234 . . . . . . . . . . Name: "Message"
235 . . . . . . . . . . Obj: *ast.Object {
236 . . . . . . . . . . . Kind: type
237 . . . . . . . . . . . Name: "Message"
238 . . . . . . . . . . . Decl: *ast.TypeSpec {
239 . . . . . . . . . . . . Doc: nil
240 . . . . . . . . . . . . Name: *ast.Ident {
241 . . . . . . . . . . . . . NamePos: -
242 . . . . . . . . . . . . . Name: "Message"
243 . . . . . . . . . . . . . Obj: *(obj @ 235)
244 . . . . . . . . . . . . }
245 . . . . . . . . . . . . TypeParams: nil
246 . . . . . . . . . . . . Assign: -
247 . . . . . . . . . . . . Type: *ast.InterfaceType {
248 . . . . . . . . . . . . . Interface: -
249 . . . . . . . . . . . . . Methods: *ast.FieldList {
250 . . . . . . . . . . . . . . Opening: -
251 . . . . . . . . . . . . . . List: nil
252 . . . . . . . . . . . . . . Closing: -
253 . . . . . . . . . . . . . }
254 . . . . . . . . . . . . . Incomplete: false
255 . . . . . . . . . . . . }
256 . . . . . . . . . . . . Comment: nil
257 . . . . . . . . . . . }
258 . . . . . . . . . . . Data: nil
259 . . . . . . . . . . . Type: nil
260 . . . . . . . . . . }
261 . . . . . . . . . }
262 . . . . . . . . . Tag: nil
263 . . . . . . . . . Comment: nil
264 . . . . . . . . }
265 . . . . . . . }
266 . . . . . . . Closing: -
267 . . . . . . }
268 . . . . . . Results: *ast.FieldList {
269 . . . . . . . Opening: -
270 . . . . . . . List: []*ast.Field (len = 1) {
271 . . . . . . . . 0: *ast.Field {
272 . . . . . . . . . Doc: nil
273 . . . . . . . . . Names: nil
274 . . . . . . . . . Type: *ast.Ident {
275 . . . . . . . . . . NamePos: -
276 . . . . . . . . . . Name: "error"
277 . . . . . . . . . . Obj: nil
278 . . . . . . . . . }
279 . . . . . . . . . Tag: nil
280 . . . . . . . . . Comment: nil
281 . . . . . . . . }
282 . . . . . . . }
283 . . . . . . . Closing: -
284 . . . . . . }
285 . . . . . }
286 . . . . }
287 . . . . Tag: nil
288 . . . . Comment: nil
289 . . . }
290 . . . 7: *ast.Field {
291 . . . . Doc: nil
292 . . . . Names: []*ast.Ident (len = 1) {
293 . . . . . 0: *ast.Ident {
294 . . . . . . NamePos: -
295 . . . . . . Name: "serviceMu"
296 . . . . . . Obj: *ast.Object {
297 . . . . . . . Kind: var
298 . . . . . . . Name: "serviceMu"
299 . . . . . . . Decl: *(obj @ 290)
300 . . . . . . . Data: nil
301 . . . . . . . Type: nil
302 . . . . . . }
303 . . . . . }
304 . . . . }
305 . . . . Type: *ast.SelectorExpr {
306 . . . . . X: *ast.Ident {
307 . . . . . . NamePos: -
308 . . . . . . Name: "sync"
309 . . . . . . Obj: nil
310 . . . . . }
311 . . . . . Sel: *ast.Ident {
312 . . . . . . NamePos: -
313 . . . . . . Name: "RWMutex"
314 . . . . . . Obj: nil
315 . . . . . }
316 . . . . }
317 . . . . Tag: nil
318 . . . . Comment: nil
319 . . . }
320 . . . 8: *ast.Field {
321 . . . . Doc: nil
322 . . . . Names: []*ast.Ident (len = 1) {
323 . . . . . 0: *ast.Ident {
324 . . . . . . NamePos: -
325 . . . . . . Name: "services"
326 . . . . . . Obj: *ast.Object {
327 . . . . . . . Kind: var
328 . . . . . . . Name: "services"
329 . . . . . . . Decl: *(obj @ 320)
330 . . . . . . . Data: nil
331 . . . . . . . Type: nil
332 . . . . . . }
333 . . . . . }
334 . . . . }
335 . . . . Type: *ast.MapType {
336 . . . . . Map: -
337 . . . . . Key: *ast.Ident {
338 . . . . . . NamePos: -
339 . . . . . . Name: "string"
340 . . . . . . Obj: nil
341 . . . . . }
342 . . . . . Value: *ast.Ident {
343 . . . . . . NamePos: -
344 . . . . . . Name: "any"
345 . . . . . . Obj: nil
346 . . . . . }
347 . . . . }
348 . . . . Tag: nil
349 . . . . Comment: nil
350 . . . }
351 . . . 9: *ast.Field {
352 . . . . Doc: nil
353 . . . . Names: []*ast.Ident (len = 1) {
354 . . . . . 0: *ast.Ident {
355 . . . . . . NamePos: -
356 . . . . . . Name: "servicesLocked"
357 . . . . . . Obj: *ast.Object {
358 . . . . . . . Kind: var
359 . . . . . . . Name: "servicesLocked"
360 . . . . . . . Decl: *(obj @ 351)
361 . . . . . . . Data: nil
362 . . . . . . . Type: nil
363 . . . . . . }
364 . . . . . }
365 . . . . }
366 . . . . Type: *ast.Ident {
367 . . . . . NamePos: -
368 . . . . . Name: "bool"
369 . . . . . Obj: nil
370 . . . . }
371 . . . . Tag: nil
372 . . . . Comment: nil
373 . . . }
374 . . }
375 . . Closing: -
376 . }
377 . Incomplete: false
378 }
```
#### Methods
- `ACTION(msg 0 *ast.Ident {
1 . NamePos: -
2 . Name: "Message"
3 . Obj: nil
4 }
) 0 *ast.Ident {
1 . NamePos: -
2 . Name: "error"
3 . Obj: nil
4 }
`:
- `Config() 0 *ast.Ident {
1 . NamePos: -
2 . Name: "Config"
3 . Obj: nil
4 }
`: Config returns the registered Config service.
- `Core() 0 *ast.StarExpr {
1 . Star: -
2 . X: *ast.Ident {
3 . . NamePos: -
4 . . Name: "Core"
5 . . Obj: nil
6 . }
7 }
`:
- `Display() 0 *ast.Ident {
1 . NamePos: -
2 . Name: "Display"
3 . Obj: nil
4 }
`: Display returns the registered Display service.
- `RegisterAction(handler 0 *ast.FuncType {
1 . Func: -
2 . TypeParams: nil
3 . Params: *ast.FieldList {
4 . . Opening: -
5 . . List: []*ast.Field (len = 2) {
6 . . . 0: *ast.Field {
7 . . . . Doc: nil
8 . . . . Names: nil
9 . . . . Type: *ast.StarExpr {
10 . . . . . Star: -
11 . . . . . X: *ast.Ident {
12 . . . . . . NamePos: -
13 . . . . . . Name: "Core"
14 . . . . . . Obj: nil
15 . . . . . }
16 . . . . }
17 . . . . Tag: nil
18 . . . . Comment: nil
19 . . . }
20 . . . 1: *ast.Field {
21 . . . . Doc: nil
22 . . . . Names: nil
23 . . . . Type: *ast.Ident {
24 . . . . . NamePos: -
25 . . . . . Name: "Message"
26 . . . . . Obj: nil
27 . . . . }
28 . . . . Tag: nil
29 . . . . Comment: nil
30 . . . }
31 . . }
32 . . Closing: -
33 . }
34 . Results: *ast.FieldList {
35 . . Opening: -
36 . . List: []*ast.Field (len = 1) {
37 . . . 0: *ast.Field {
38 . . . . Doc: nil
39 . . . . Names: nil
40 . . . . Type: *ast.Ident {
41 . . . . . NamePos: -
42 . . . . . Name: "error"
43 . . . . . Obj: nil
44 . . . . }
45 . . . . Tag: nil
46 . . . . Comment: nil
47 . . . }
48 . . }
49 . . Closing: -
50 . }
51 }
) `:
- `RegisterActions(handlers 0 *ast.Ellipsis {
1 . Ellipsis: -
2 . Elt: *ast.FuncType {
3 . . Func: -
4 . . TypeParams: nil
5 . . Params: *ast.FieldList {
6 . . . Opening: -
7 . . . List: []*ast.Field (len = 2) {
8 . . . . 0: *ast.Field {
9 . . . . . Doc: nil
10 . . . . . Names: nil
11 . . . . . Type: *ast.StarExpr {
12 . . . . . . Star: -
13 . . . . . . X: *ast.Ident {
14 . . . . . . . NamePos: -
15 . . . . . . . Name: "Core"
16 . . . . . . . Obj: nil
17 . . . . . . }
18 . . . . . }
19 . . . . . Tag: nil
20 . . . . . Comment: nil
21 . . . . }
22 . . . . 1: *ast.Field {
23 . . . . . Doc: nil
24 . . . . . Names: nil
25 . . . . . Type: *ast.Ident {
26 . . . . . . NamePos: -
27 . . . . . . Name: "Message"
28 . . . . . . Obj: nil
29 . . . . . }
30 . . . . . Tag: nil
31 . . . . . Comment: nil
32 . . . . }
33 . . . }
34 . . . Closing: -
35 . . }
36 . . Results: *ast.FieldList {
37 . . . Opening: -
38 . . . List: []*ast.Field (len = 1) {
39 . . . . 0: *ast.Field {
40 . . . . . Doc: nil
41 . . . . . Names: nil
42 . . . . . Type: *ast.Ident {
43 . . . . . . NamePos: -
44 . . . . . . Name: "error"
45 . . . . . . Obj: nil
46 . . . . . }
47 . . . . . Tag: nil
48 . . . . . Comment: nil
49 . . . . }
50 . . . }
51 . . . Closing: -
52 . . }
53 . }
54 }
) `:
- `RegisterService(name 0 *ast.Ident {
1 . NamePos: -
2 . Name: "string"
3 . Obj: nil
4 }
, api 0 *ast.Ident {
1 . NamePos: -
2 . Name: "any"
3 . Obj: nil
4 }
) 0 *ast.Ident {
1 . NamePos: -
2 . Name: "error"
3 . Obj: nil
4 }
`:
- `Service(name 0 *ast.Ident {
1 . NamePos: -
2 . Name: "string"
3 . Obj: nil
4 }
) 0 *ast.Ident {
1 . NamePos: -
2 . Name: "any"
3 . Obj: nil
4 }
`:
- `ServiceShutdown(ctx 0 *ast.SelectorExpr {
1 . X: *ast.Ident {
2 . . NamePos: -
3 . . Name: "context"
4 . . Obj: nil
5 . }
6 . Sel: *ast.Ident {
7 . . NamePos: -
8 . . Name: "Context"
9 . . Obj: nil
10 . }
11 }
) 0 *ast.Ident {
1 . NamePos: -
2 . Name: "error"
3 . Obj: nil
4 }
`:
- `ServiceStartup(ctx 0 *ast.SelectorExpr {
1 . X: *ast.Ident {
2 . . NamePos: -
3 . . Name: "context"
4 . . Obj: nil
5 . }
6 . Sel: *ast.Ident {
7 . . NamePos: -
8 . . Name: "Context"
9 . . Obj: nil
10 . }
11 }
, options 0 *ast.SelectorExpr {
1 . X: *ast.Ident {
2 . . NamePos: -
3 . . Name: "application"
4 . . Obj: nil
5 . }
6 . Sel: *ast.Ident {
7 . . NamePos: -
8 . . Name: "ServiceOptions"
9 . . Obj: nil
10 . }
11 }
) 0 *ast.Ident {
1 . NamePos: -
2 . Name: "error"
3 . Obj: nil
4 }
`:
### `type Crypt`
```go
type Crypt 0 *ast.InterfaceType {
1 . Interface: -
2 . Methods: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 2) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "EncryptPGP"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: func
13 . . . . . . . Name: "EncryptPGP"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.FuncType {
21 . . . . . Func: -
22 . . . . . TypeParams: nil
23 . . . . . Params: *ast.FieldList {
24 . . . . . . Opening: -
25 . . . . . . List: []*ast.Field (len = 3) {
26 . . . . . . . 0: *ast.Field {
27 . . . . . . . . Doc: nil
28 . . . . . . . . Names: []*ast.Ident (len = 1) {
29 . . . . . . . . . 0: *ast.Ident {
30 . . . . . . . . . . NamePos: -
31 . . . . . . . . . . Name: "writer"
32 . . . . . . . . . . Obj: *ast.Object {
33 . . . . . . . . . . . Kind: var
34 . . . . . . . . . . . Name: "writer"
35 . . . . . . . . . . . Decl: *(obj @ 26)
36 . . . . . . . . . . . Data: nil
37 . . . . . . . . . . . Type: nil
38 . . . . . . . . . . }
39 . . . . . . . . . }
40 . . . . . . . . }
41 . . . . . . . . Type: *ast.SelectorExpr {
42 . . . . . . . . . X: *ast.Ident {
43 . . . . . . . . . . NamePos: -
44 . . . . . . . . . . Name: "io"
45 . . . . . . . . . . Obj: nil
46 . . . . . . . . . }
47 . . . . . . . . . Sel: *ast.Ident {
48 . . . . . . . . . . NamePos: -
49 . . . . . . . . . . Name: "Writer"
50 . . . . . . . . . . Obj: nil
51 . . . . . . . . . }
52 . . . . . . . . }
53 . . . . . . . . Tag: nil
54 . . . . . . . . Comment: nil
55 . . . . . . . }
56 . . . . . . . 1: *ast.Field {
57 . . . . . . . . Doc: nil
58 . . . . . . . . Names: []*ast.Ident (len = 2) {
59 . . . . . . . . . 0: *ast.Ident {
60 . . . . . . . . . . NamePos: -
61 . . . . . . . . . . Name: "recipientPath"
62 . . . . . . . . . . Obj: *ast.Object {
63 . . . . . . . . . . . Kind: var
64 . . . . . . . . . . . Name: "recipientPath"
65 . . . . . . . . . . . Decl: *(obj @ 56)
66 . . . . . . . . . . . Data: nil
67 . . . . . . . . . . . Type: nil
68 . . . . . . . . . . }
69 . . . . . . . . . }
70 . . . . . . . . . 1: *ast.Ident {
71 . . . . . . . . . . NamePos: -
72 . . . . . . . . . . Name: "data"
73 . . . . . . . . . . Obj: *ast.Object {
74 . . . . . . . . . . . Kind: var
75 . . . . . . . . . . . Name: "data"
76 . . . . . . . . . . . Decl: *(obj @ 56)
77 . . . . . . . . . . . Data: nil
78 . . . . . . . . . . . Type: nil
79 . . . . . . . . . . }
80 . . . . . . . . . }
81 . . . . . . . . }
82 . . . . . . . . Type: *ast.Ident {
83 . . . . . . . . . NamePos: -
84 . . . . . . . . . Name: "string"
85 . . . . . . . . . Obj: nil
86 . . . . . . . . }
87 . . . . . . . . Tag: nil
88 . . . . . . . . Comment: nil
89 . . . . . . . }
90 . . . . . . . 2: *ast.Field {
91 . . . . . . . . Doc: nil
92 . . . . . . . . Names: []*ast.Ident (len = 2) {
93 . . . . . . . . . 0: *ast.Ident {
94 . . . . . . . . . . NamePos: -
95 . . . . . . . . . . Name: "signerPath"
96 . . . . . . . . . . Obj: *ast.Object {
97 . . . . . . . . . . . Kind: var
98 . . . . . . . . . . . Name: "signerPath"
99 . . . . . . . . . . . Decl: *(obj @ 90)
100 . . . . . . . . . . . Data: nil
101 . . . . . . . . . . . Type: nil
102 . . . . . . . . . . }
103 . . . . . . . . . }
104 . . . . . . . . . 1: *ast.Ident {
105 . . . . . . . . . . NamePos: -
106 . . . . . . . . . . Name: "signerPassphrase"
107 . . . . . . . . . . Obj: *ast.Object {
108 . . . . . . . . . . . Kind: var
109 . . . . . . . . . . . Name: "signerPassphrase"
110 . . . . . . . . . . . Decl: *(obj @ 90)
111 . . . . . . . . . . . Data: nil
112 . . . . . . . . . . . Type: nil
113 . . . . . . . . . . }
114 . . . . . . . . . }
115 . . . . . . . . }
116 . . . . . . . . Type: *ast.StarExpr {
117 . . . . . . . . . Star: -
118 . . . . . . . . . X: *ast.Ident {
119 . . . . . . . . . . NamePos: -
120 . . . . . . . . . . Name: "string"
121 . . . . . . . . . . Obj: nil
122 . . . . . . . . . }
123 . . . . . . . . }
124 . . . . . . . . Tag: nil
125 . . . . . . . . Comment: nil
126 . . . . . . . }
127 . . . . . . }
128 . . . . . . Closing: -
129 . . . . . }
130 . . . . . Results: *ast.FieldList {
131 . . . . . . Opening: -
132 . . . . . . List: []*ast.Field (len = 2) {
133 . . . . . . . 0: *ast.Field {
134 . . . . . . . . Doc: nil
135 . . . . . . . . Names: nil
136 . . . . . . . . Type: *ast.Ident {
137 . . . . . . . . . NamePos: -
138 . . . . . . . . . Name: "string"
139 . . . . . . . . . Obj: nil
140 . . . . . . . . }
141 . . . . . . . . Tag: nil
142 . . . . . . . . Comment: nil
143 . . . . . . . }
144 . . . . . . . 1: *ast.Field {
145 . . . . . . . . Doc: nil
146 . . . . . . . . Names: nil
147 . . . . . . . . Type: *ast.Ident {
148 . . . . . . . . . NamePos: -
149 . . . . . . . . . Name: "error"
150 . . . . . . . . . Obj: nil
151 . . . . . . . . }
152 . . . . . . . . Tag: nil
153 . . . . . . . . Comment: nil
154 . . . . . . . }
155 . . . . . . }
156 . . . . . . Closing: -
157 . . . . . }
158 . . . . }
159 . . . . Tag: nil
160 . . . . Comment: nil
161 . . . }
162 . . . 1: *ast.Field {
163 . . . . Doc: nil
164 . . . . Names: []*ast.Ident (len = 1) {
165 . . . . . 0: *ast.Ident {
166 . . . . . . NamePos: -
167 . . . . . . Name: "DecryptPGP"
168 . . . . . . Obj: *ast.Object {
169 . . . . . . . Kind: func
170 . . . . . . . Name: "DecryptPGP"
171 . . . . . . . Decl: *(obj @ 162)
172 . . . . . . . Data: nil
173 . . . . . . . Type: nil
174 . . . . . . }
175 . . . . . }
176 . . . . }
177 . . . . Type: *ast.FuncType {
178 . . . . . Func: -
179 . . . . . TypeParams: nil
180 . . . . . Params: *ast.FieldList {
181 . . . . . . Opening: -
182 . . . . . . List: []*ast.Field (len = 2) {
183 . . . . . . . 0: *ast.Field {
184 . . . . . . . . Doc: nil
185 . . . . . . . . Names: []*ast.Ident (len = 3) {
186 . . . . . . . . . 0: *ast.Ident {
187 . . . . . . . . . . NamePos: -
188 . . . . . . . . . . Name: "recipientPath"
189 . . . . . . . . . . Obj: *ast.Object {
190 . . . . . . . . . . . Kind: var
191 . . . . . . . . . . . Name: "recipientPath"
192 . . . . . . . . . . . Decl: *(obj @ 183)
193 . . . . . . . . . . . Data: nil
194 . . . . . . . . . . . Type: nil
195 . . . . . . . . . . }
196 . . . . . . . . . }
197 . . . . . . . . . 1: *ast.Ident {
198 . . . . . . . . . . NamePos: -
199 . . . . . . . . . . Name: "message"
200 . . . . . . . . . . Obj: *ast.Object {
201 . . . . . . . . . . . Kind: var
202 . . . . . . . . . . . Name: "message"
203 . . . . . . . . . . . Decl: *(obj @ 183)
204 . . . . . . . . . . . Data: nil
205 . . . . . . . . . . . Type: nil
206 . . . . . . . . . . }
207 . . . . . . . . . }
208 . . . . . . . . . 2: *ast.Ident {
209 . . . . . . . . . . NamePos: -
210 . . . . . . . . . . Name: "passphrase"
211 . . . . . . . . . . Obj: *ast.Object {
212 . . . . . . . . . . . Kind: var
213 . . . . . . . . . . . Name: "passphrase"
214 . . . . . . . . . . . Decl: *(obj @ 183)
215 . . . . . . . . . . . Data: nil
216 . . . . . . . . . . . Type: nil
217 . . . . . . . . . . }
218 . . . . . . . . . }
219 . . . . . . . . }
220 . . . . . . . . Type: *ast.Ident {
221 . . . . . . . . . NamePos: -
222 . . . . . . . . . Name: "string"
223 . . . . . . . . . Obj: nil
224 . . . . . . . . }
225 . . . . . . . . Tag: nil
226 . . . . . . . . Comment: nil
227 . . . . . . . }
228 . . . . . . . 1: *ast.Field {
229 . . . . . . . . Doc: nil
230 . . . . . . . . Names: []*ast.Ident (len = 1) {
231 . . . . . . . . . 0: *ast.Ident {
232 . . . . . . . . . . NamePos: -
233 . . . . . . . . . . Name: "signerPath"
234 . . . . . . . . . . Obj: *ast.Object {
235 . . . . . . . . . . . Kind: var
236 . . . . . . . . . . . Name: "signerPath"
237 . . . . . . . . . . . Decl: *(obj @ 228)
238 . . . . . . . . . . . Data: nil
239 . . . . . . . . . . . Type: nil
240 . . . . . . . . . . }
241 . . . . . . . . . }
242 . . . . . . . . }
243 . . . . . . . . Type: *ast.StarExpr {
244 . . . . . . . . . Star: -
245 . . . . . . . . . X: *ast.Ident {
246 . . . . . . . . . . NamePos: -
247 . . . . . . . . . . Name: "string"
248 . . . . . . . . . . Obj: nil
249 . . . . . . . . . }
250 . . . . . . . . }
251 . . . . . . . . Tag: nil
252 . . . . . . . . Comment: nil
253 . . . . . . . }
254 . . . . . . }
255 . . . . . . Closing: -
256 . . . . . }
257 . . . . . Results: *ast.FieldList {
258 . . . . . . Opening: -
259 . . . . . . List: []*ast.Field (len = 2) {
260 . . . . . . . 0: *ast.Field {
261 . . . . . . . . Doc: nil
262 . . . . . . . . Names: nil
263 . . . . . . . . Type: *ast.Ident {
264 . . . . . . . . . NamePos: -
265 . . . . . . . . . Name: "string"
266 . . . . . . . . . Obj: nil
267 . . . . . . . . }
268 . . . . . . . . Tag: nil
269 . . . . . . . . Comment: nil
270 . . . . . . . }
271 . . . . . . . 1: *ast.Field {
272 . . . . . . . . Doc: nil
273 . . . . . . . . Names: nil
274 . . . . . . . . Type: *ast.Ident {
275 . . . . . . . . . NamePos: -
276 . . . . . . . . . Name: "error"
277 . . . . . . . . . Obj: nil
278 . . . . . . . . }
279 . . . . . . . . Tag: nil
280 . . . . . . . . Comment: nil
281 . . . . . . . }
282 . . . . . . }
283 . . . . . . Closing: -
284 . . . . . }
285 . . . . }
286 . . . . Tag: nil
287 . . . . Comment: nil
288 . . . }
289 . . }
290 . . Closing: -
291 . }
292 . Incomplete: false
293 }
```
Crypt provides cryptographic functions.
### `type Display`
```go
type Display 0 *ast.InterfaceType {
1 . Interface: -
2 . Methods: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 1) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "OpenWindow"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: func
13 . . . . . . . Name: "OpenWindow"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.FuncType {
21 . . . . . Func: -
22 . . . . . TypeParams: nil
23 . . . . . Params: *ast.FieldList {
24 . . . . . . Opening: -
25 . . . . . . List: []*ast.Field (len = 1) {
26 . . . . . . . 0: *ast.Field {
27 . . . . . . . . Doc: nil
28 . . . . . . . . Names: []*ast.Ident (len = 1) {
29 . . . . . . . . . 0: *ast.Ident {
30 . . . . . . . . . . NamePos: -
31 . . . . . . . . . . Name: "opts"
32 . . . . . . . . . . Obj: *ast.Object {
33 . . . . . . . . . . . Kind: var
34 . . . . . . . . . . . Name: "opts"
35 . . . . . . . . . . . Decl: *(obj @ 26)
36 . . . . . . . . . . . Data: nil
37 . . . . . . . . . . . Type: nil
38 . . . . . . . . . . }
39 . . . . . . . . . }
40 . . . . . . . . }
41 . . . . . . . . Type: *ast.Ellipsis {
42 . . . . . . . . . Ellipsis: -
43 . . . . . . . . . Elt: *ast.Ident {
44 . . . . . . . . . . NamePos: -
45 . . . . . . . . . . Name: "WindowOption"
46 . . . . . . . . . . Obj: *ast.Object {
47 . . . . . . . . . . . Kind: type
48 . . . . . . . . . . . Name: "WindowOption"
49 . . . . . . . . . . . Decl: *ast.TypeSpec {
50 . . . . . . . . . . . . Doc: nil
51 . . . . . . . . . . . . Name: *ast.Ident {
52 . . . . . . . . . . . . . NamePos: -
53 . . . . . . . . . . . . . Name: "WindowOption"
54 . . . . . . . . . . . . . Obj: *(obj @ 46)
55 . . . . . . . . . . . . }
56 . . . . . . . . . . . . TypeParams: nil
57 . . . . . . . . . . . . Assign: -
58 . . . . . . . . . . . . Type: *ast.InterfaceType {
59 . . . . . . . . . . . . . Interface: -
60 . . . . . . . . . . . . . Methods: *ast.FieldList {
61 . . . . . . . . . . . . . . Opening: -
62 . . . . . . . . . . . . . . List: []*ast.Field (len = 1) {
63 . . . . . . . . . . . . . . . 0: *ast.Field {
64 . . . . . . . . . . . . . . . . Doc: nil
65 . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
66 . . . . . . . . . . . . . . . . . 0: *ast.Ident {
67 . . . . . . . . . . . . . . . . . . NamePos: -
68 . . . . . . . . . . . . . . . . . . Name: "Apply"
69 . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
70 . . . . . . . . . . . . . . . . . . . Kind: func
71 . . . . . . . . . . . . . . . . . . . Name: "Apply"
72 . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 63)
73 . . . . . . . . . . . . . . . . . . . Data: nil
74 . . . . . . . . . . . . . . . . . . . Type: nil
75 . . . . . . . . . . . . . . . . . . }
76 . . . . . . . . . . . . . . . . . }
77 . . . . . . . . . . . . . . . . }
78 . . . . . . . . . . . . . . . . Type: *ast.FuncType {
79 . . . . . . . . . . . . . . . . . Func: -
80 . . . . . . . . . . . . . . . . . TypeParams: nil
81 . . . . . . . . . . . . . . . . . Params: *ast.FieldList {
82 . . . . . . . . . . . . . . . . . . Opening: -
83 . . . . . . . . . . . . . . . . . . List: []*ast.Field (len = 1) {
84 . . . . . . . . . . . . . . . . . . . 0: *ast.Field {
85 . . . . . . . . . . . . . . . . . . . . Doc: nil
86 . . . . . . . . . . . . . . . . . . . . Names: nil
87 . . . . . . . . . . . . . . . . . . . . Type: *ast.StarExpr {
88 . . . . . . . . . . . . . . . . . . . . . Star: -
89 . . . . . . . . . . . . . . . . . . . . . X: *ast.Ident {
90 . . . . . . . . . . . . . . . . . . . . . . NamePos: -
91 . . . . . . . . . . . . . . . . . . . . . . Name: "WindowConfig"
92 . . . . . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
93 . . . . . . . . . . . . . . . . . . . . . . . Kind: type
94 . . . . . . . . . . . . . . . . . . . . . . . Name: "WindowConfig"
95 . . . . . . . . . . . . . . . . . . . . . . . Decl: *ast.TypeSpec {
96 . . . . . . . . . . . . . . . . . . . . . . . . Doc: nil
97 . . . . . . . . . . . . . . . . . . . . . . . . Name: *ast.Ident {
98 . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
99 . . . . . . . . . . . . . . . . . . . . . . . . . Name: "WindowConfig"
100 . . . . . . . . . . . . . . . . . . . . . . . . . Obj: *(obj @ 92)
101 . . . . . . . . . . . . . . . . . . . . . . . . }
102 . . . . . . . . . . . . . . . . . . . . . . . . TypeParams: nil
103 . . . . . . . . . . . . . . . . . . . . . . . . Assign: -
104 . . . . . . . . . . . . . . . . . . . . . . . . Type: *ast.StructType {
105 . . . . . . . . . . . . . . . . . . . . . . . . . Struct: -
106 . . . . . . . . . . . . . . . . . . . . . . . . . Fields: *ast.FieldList {
107 . . . . . . . . . . . . . . . . . . . . . . . . . . Opening: -
108 . . . . . . . . . . . . . . . . . . . . . . . . . . List: []*ast.Field (len = 5) {
109 . . . . . . . . . . . . . . . . . . . . . . . . . . . 0: *ast.Field {
110 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Doc: nil
111 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
112 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0: *ast.Ident {
113 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
114 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "Name"
115 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
116 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kind: var
117 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "Name"
118 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 109)
119 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data: nil
120 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: nil
121 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
122 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
123 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
124 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: *ast.Ident {
125 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
126 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "string"
127 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: nil
128 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
129 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tag: nil
130 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comment: nil
131 . . . . . . . . . . . . . . . . . . . . . . . . . . . }
132 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1: *ast.Field {
133 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Doc: nil
134 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
135 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0: *ast.Ident {
136 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
137 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "Title"
138 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
139 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kind: var
140 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "Title"
141 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 132)
142 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data: nil
143 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: nil
144 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
145 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
146 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
147 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: *ast.Ident {
148 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
149 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "string"
150 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: nil
151 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
152 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tag: nil
153 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comment: nil
154 . . . . . . . . . . . . . . . . . . . . . . . . . . . }
155 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2: *ast.Field {
156 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Doc: nil
157 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
158 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0: *ast.Ident {
159 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
160 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "URL"
161 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
162 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kind: var
163 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "URL"
164 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 155)
165 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data: nil
166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: nil
167 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
168 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
169 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
170 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: *ast.Ident {
171 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
172 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "string"
173 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: nil
174 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
175 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tag: nil
176 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comment: nil
177 . . . . . . . . . . . . . . . . . . . . . . . . . . . }
178 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3: *ast.Field {
179 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Doc: nil
180 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
181 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0: *ast.Ident {
182 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
183 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "Width"
184 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
185 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kind: var
186 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "Width"
187 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 178)
188 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data: nil
189 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: nil
190 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
191 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
192 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
193 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: *ast.Ident {
194 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
195 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "int"
196 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: nil
197 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
198 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tag: nil
199 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comment: nil
200 . . . . . . . . . . . . . . . . . . . . . . . . . . . }
201 . . . . . . . . . . . . . . . . . . . . . . . . . . . 4: *ast.Field {
202 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Doc: nil
203 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
204 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0: *ast.Ident {
205 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
206 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "Height"
207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
208 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kind: var
209 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "Height"
210 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 201)
211 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data: nil
212 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: nil
213 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
214 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
215 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
216 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type: *ast.Ident {
217 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NamePos: -
218 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Name: "int"
219 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obj: nil
220 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
221 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tag: nil
222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comment: *ast.CommentGroup {
223 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List: []*ast.Comment (len = 1) {
224 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0: *ast.Comment {
225 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Slash: -
226 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Text: "// Add other common window options here as needed"
227 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
228 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
229 . . . . . . . . . . . . . . . . . . . . . . . . . . . . }
230 . . . . . . . . . . . . . . . . . . . . . . . . . . . }
231 . . . . . . . . . . . . . . . . . . . . . . . . . . }
232 . . . . . . . . . . . . . . . . . . . . . . . . . . Closing: -
233 . . . . . . . . . . . . . . . . . . . . . . . . . }
234 . . . . . . . . . . . . . . . . . . . . . . . . . Incomplete: false
235 . . . . . . . . . . . . . . . . . . . . . . . . }
236 . . . . . . . . . . . . . . . . . . . . . . . . Comment: nil
237 . . . . . . . . . . . . . . . . . . . . . . . }
238 . . . . . . . . . . . . . . . . . . . . . . . Data: nil
239 . . . . . . . . . . . . . . . . . . . . . . . Type: nil
240 . . . . . . . . . . . . . . . . . . . . . . }
241 . . . . . . . . . . . . . . . . . . . . . }
242 . . . . . . . . . . . . . . . . . . . . }
243 . . . . . . . . . . . . . . . . . . . . Tag: nil
244 . . . . . . . . . . . . . . . . . . . . Comment: nil
245 . . . . . . . . . . . . . . . . . . . }
246 . . . . . . . . . . . . . . . . . . }
247 . . . . . . . . . . . . . . . . . . Closing: -
248 . . . . . . . . . . . . . . . . . }
249 . . . . . . . . . . . . . . . . . Results: nil
250 . . . . . . . . . . . . . . . . }
251 . . . . . . . . . . . . . . . . Tag: nil
252 . . . . . . . . . . . . . . . . Comment: nil
253 . . . . . . . . . . . . . . . }
254 . . . . . . . . . . . . . . }
255 . . . . . . . . . . . . . . Closing: -
256 . . . . . . . . . . . . . }
257 . . . . . . . . . . . . . Incomplete: false
258 . . . . . . . . . . . . }
259 . . . . . . . . . . . . Comment: nil
260 . . . . . . . . . . . }
261 . . . . . . . . . . . Data: nil
262 . . . . . . . . . . . Type: nil
263 . . . . . . . . . . }
264 . . . . . . . . . }
265 . . . . . . . . }
266 . . . . . . . . Tag: nil
267 . . . . . . . . Comment: nil
268 . . . . . . . }
269 . . . . . . }
270 . . . . . . Closing: -
271 . . . . . }
272 . . . . . Results: *ast.FieldList {
273 . . . . . . Opening: -
274 . . . . . . List: []*ast.Field (len = 1) {
275 . . . . . . . 0: *ast.Field {
276 . . . . . . . . Doc: nil
277 . . . . . . . . Names: nil
278 . . . . . . . . Type: *ast.Ident {
279 . . . . . . . . . NamePos: -
280 . . . . . . . . . Name: "error"
281 . . . . . . . . . Obj: nil
282 . . . . . . . . }
283 . . . . . . . . Tag: nil
284 . . . . . . . . Comment: nil
285 . . . . . . . }
286 . . . . . . }
287 . . . . . . Closing: -
288 . . . . . }
289 . . . . }
290 . . . . Tag: nil
291 . . . . Comment: nil
292 . . . }
293 . . }
294 . . Closing: -
295 . }
296 . Incomplete: false
297 }
```
Display manages windows and UI.
### `type Help`
```go
type Help 0 *ast.InterfaceType {
1 . Interface: -
2 . Methods: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 2) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "Show"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: func
13 . . . . . . . Name: "Show"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.FuncType {
21 . . . . . Func: -
22 . . . . . TypeParams: nil
23 . . . . . Params: *ast.FieldList {
24 . . . . . . Opening: -
25 . . . . . . List: nil
26 . . . . . . Closing: -
27 . . . . . }
28 . . . . . Results: *ast.FieldList {
29 . . . . . . Opening: -
30 . . . . . . List: []*ast.Field (len = 1) {
31 . . . . . . . 0: *ast.Field {
32 . . . . . . . . Doc: nil
33 . . . . . . . . Names: nil
34 . . . . . . . . Type: *ast.Ident {
35 . . . . . . . . . NamePos: -
36 . . . . . . . . . Name: "error"
37 . . . . . . . . . Obj: nil
38 . . . . . . . . }
39 . . . . . . . . Tag: nil
40 . . . . . . . . Comment: nil
41 . . . . . . . }
42 . . . . . . }
43 . . . . . . Closing: -
44 . . . . . }
45 . . . . }
46 . . . . Tag: nil
47 . . . . Comment: nil
48 . . . }
49 . . . 1: *ast.Field {
50 . . . . Doc: nil
51 . . . . Names: []*ast.Ident (len = 1) {
52 . . . . . 0: *ast.Ident {
53 . . . . . . NamePos: -
54 . . . . . . Name: "ShowAt"
55 . . . . . . Obj: *ast.Object {
56 . . . . . . . Kind: func
57 . . . . . . . Name: "ShowAt"
58 . . . . . . . Decl: *(obj @ 49)
59 . . . . . . . Data: nil
60 . . . . . . . Type: nil
61 . . . . . . }
62 . . . . . }
63 . . . . }
64 . . . . Type: *ast.FuncType {
65 . . . . . Func: -
66 . . . . . TypeParams: nil
67 . . . . . Params: *ast.FieldList {
68 . . . . . . Opening: -
69 . . . . . . List: []*ast.Field (len = 1) {
70 . . . . . . . 0: *ast.Field {
71 . . . . . . . . Doc: nil
72 . . . . . . . . Names: []*ast.Ident (len = 1) {
73 . . . . . . . . . 0: *ast.Ident {
74 . . . . . . . . . . NamePos: -
75 . . . . . . . . . . Name: "anchor"
76 . . . . . . . . . . Obj: *ast.Object {
77 . . . . . . . . . . . Kind: var
78 . . . . . . . . . . . Name: "anchor"
79 . . . . . . . . . . . Decl: *(obj @ 70)
80 . . . . . . . . . . . Data: nil
81 . . . . . . . . . . . Type: nil
82 . . . . . . . . . . }
83 . . . . . . . . . }
84 . . . . . . . . }
85 . . . . . . . . Type: *ast.Ident {
86 . . . . . . . . . NamePos: -
87 . . . . . . . . . Name: "string"
88 . . . . . . . . . Obj: nil
89 . . . . . . . . }
90 . . . . . . . . Tag: nil
91 . . . . . . . . Comment: nil
92 . . . . . . . }
93 . . . . . . }
94 . . . . . . Closing: -
95 . . . . . }
96 . . . . . Results: *ast.FieldList {
97 . . . . . . Opening: -
98 . . . . . . List: []*ast.Field (len = 1) {
99 . . . . . . . 0: *ast.Field {
100 . . . . . . . . Doc: nil
101 . . . . . . . . Names: nil
102 . . . . . . . . Type: *ast.Ident {
103 . . . . . . . . . NamePos: -
104 . . . . . . . . . Name: "error"
105 . . . . . . . . . Obj: nil
106 . . . . . . . . }
107 . . . . . . . . Tag: nil
108 . . . . . . . . Comment: nil
109 . . . . . . . }
110 . . . . . . }
111 . . . . . . Closing: -
112 . . . . . }
113 . . . . }
114 . . . . Tag: nil
115 . . . . Comment: nil
116 . . . }
117 . . }
118 . . Closing: -
119 . }
120 . Incomplete: false
121 }
```
Help manages the in-app documentation and help system.
### `type I18n`
```go
type I18n 0 *ast.InterfaceType {
1 . Interface: -
2 . Methods: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 2) {
5 . . . 0: *ast.Field {
6 . . . . Doc: *ast.CommentGroup {
7 . . . . . List: []*ast.Comment (len = 1) {
8 . . . . . . 0: *ast.Comment {
9 . . . . . . . Slash: -
10 . . . . . . . Text: "// Translate returns the translated string for the given key."
11 . . . . . . }
12 . . . . . }
13 . . . . }
14 . . . . Names: []*ast.Ident (len = 1) {
15 . . . . . 0: *ast.Ident {
16 . . . . . . NamePos: -
17 . . . . . . Name: "Translate"
18 . . . . . . Obj: *ast.Object {
19 . . . . . . . Kind: func
20 . . . . . . . Name: "Translate"
21 . . . . . . . Decl: *(obj @ 5)
22 . . . . . . . Data: nil
23 . . . . . . . Type: nil
24 . . . . . . }
25 . . . . . }
26 . . . . }
27 . . . . Type: *ast.FuncType {
28 . . . . . Func: -
29 . . . . . TypeParams: nil
30 . . . . . Params: *ast.FieldList {
31 . . . . . . Opening: -
32 . . . . . . List: []*ast.Field (len = 1) {
33 . . . . . . . 0: *ast.Field {
34 . . . . . . . . Doc: nil
35 . . . . . . . . Names: []*ast.Ident (len = 1) {
36 . . . . . . . . . 0: *ast.Ident {
37 . . . . . . . . . . NamePos: -
38 . . . . . . . . . . Name: "key"
39 . . . . . . . . . . Obj: *ast.Object {
40 . . . . . . . . . . . Kind: var
41 . . . . . . . . . . . Name: "key"
42 . . . . . . . . . . . Decl: *(obj @ 33)
43 . . . . . . . . . . . Data: nil
44 . . . . . . . . . . . Type: nil
45 . . . . . . . . . . }
46 . . . . . . . . . }
47 . . . . . . . . }
48 . . . . . . . . Type: *ast.Ident {
49 . . . . . . . . . NamePos: -
50 . . . . . . . . . Name: "string"
51 . . . . . . . . . Obj: nil
52 . . . . . . . . }
53 . . . . . . . . Tag: nil
54 . . . . . . . . Comment: nil
55 . . . . . . . }
56 . . . . . . }
57 . . . . . . Closing: -
58 . . . . . }
59 . . . . . Results: *ast.FieldList {
60 . . . . . . Opening: -
61 . . . . . . List: []*ast.Field (len = 1) {
62 . . . . . . . 0: *ast.Field {
63 . . . . . . . . Doc: nil
64 . . . . . . . . Names: nil
65 . . . . . . . . Type: *ast.Ident {
66 . . . . . . . . . NamePos: -
67 . . . . . . . . . Name: "string"
68 . . . . . . . . . Obj: nil
69 . . . . . . . . }
70 . . . . . . . . Tag: nil
71 . . . . . . . . Comment: nil
72 . . . . . . . }
73 . . . . . . }
74 . . . . . . Closing: -
75 . . . . . }
76 . . . . }
77 . . . . Tag: nil
78 . . . . Comment: nil
79 . . . }
80 . . . 1: *ast.Field {
81 . . . . Doc: *ast.CommentGroup {
82 . . . . . List: []*ast.Comment (len = 1) {
83 . . . . . . 0: *ast.Comment {
84 . . . . . . . Slash: -
85 . . . . . . . Text: "// SetLanguage changes the active language."
86 . . . . . . }
87 . . . . . }
88 . . . . }
89 . . . . Names: []*ast.Ident (len = 1) {
90 . . . . . 0: *ast.Ident {
91 . . . . . . NamePos: -
92 . . . . . . Name: "SetLanguage"
93 . . . . . . Obj: *ast.Object {
94 . . . . . . . Kind: func
95 . . . . . . . Name: "SetLanguage"
96 . . . . . . . Decl: *(obj @ 80)
97 . . . . . . . Data: nil
98 . . . . . . . Type: nil
99 . . . . . . }
100 . . . . . }
101 . . . . }
102 . . . . Type: *ast.FuncType {
103 . . . . . Func: -
104 . . . . . TypeParams: nil
105 . . . . . Params: *ast.FieldList {
106 . . . . . . Opening: -
107 . . . . . . List: []*ast.Field (len = 1) {
108 . . . . . . . 0: *ast.Field {
109 . . . . . . . . Doc: nil
110 . . . . . . . . Names: []*ast.Ident (len = 1) {
111 . . . . . . . . . 0: *ast.Ident {
112 . . . . . . . . . . NamePos: -
113 . . . . . . . . . . Name: "lang"
114 . . . . . . . . . . Obj: *ast.Object {
115 . . . . . . . . . . . Kind: var
116 . . . . . . . . . . . Name: "lang"
117 . . . . . . . . . . . Decl: *(obj @ 108)
118 . . . . . . . . . . . Data: nil
119 . . . . . . . . . . . Type: nil
120 . . . . . . . . . . }
121 . . . . . . . . . }
122 . . . . . . . . }
123 . . . . . . . . Type: *ast.Ident {
124 . . . . . . . . . NamePos: -
125 . . . . . . . . . Name: "string"
126 . . . . . . . . . Obj: nil
127 . . . . . . . . }
128 . . . . . . . . Tag: nil
129 . . . . . . . . Comment: nil
130 . . . . . . . }
131 . . . . . . }
132 . . . . . . Closing: -
133 . . . . . }
134 . . . . . Results: *ast.FieldList {
135 . . . . . . Opening: -
136 . . . . . . List: []*ast.Field (len = 1) {
137 . . . . . . . 0: *ast.Field {
138 . . . . . . . . Doc: nil
139 . . . . . . . . Names: nil
140 . . . . . . . . Type: *ast.Ident {
141 . . . . . . . . . NamePos: -
142 . . . . . . . . . Name: "error"
143 . . . . . . . . . Obj: nil
144 . . . . . . . . }
145 . . . . . . . . Tag: nil
146 . . . . . . . . Comment: nil
147 . . . . . . . }
148 . . . . . . }
149 . . . . . . Closing: -
150 . . . . . }
151 . . . . }
152 . . . . Tag: nil
153 . . . . Comment: nil
154 . . . }
155 . . }
156 . . Closing: -
157 . }
158 . Incomplete: false
159 }
```
I18n provides internationalization and localization services.
### `type Message`
```go
type Message 0 *ast.InterfaceType {
1 . Interface: -
2 . Methods: *ast.FieldList {
3 . . Opening: -
4 . . List: nil
5 . . Closing: -
6 . }
7 . Incomplete: false
8 }
```
### `type Option`
```go
type Option 0 *ast.FuncType {
1 . Func: -
2 . TypeParams: nil
3 . Params: *ast.FieldList {
4 . . Opening: -
5 . . List: []*ast.Field (len = 1) {
6 . . . 0: *ast.Field {
7 . . . . Doc: nil
8 . . . . Names: nil
9 . . . . Type: *ast.StarExpr {
10 . . . . . Star: -
11 . . . . . X: *ast.Ident {
12 . . . . . . NamePos: -
13 . . . . . . Name: "Core"
14 . . . . . . Obj: *ast.Object {
15 . . . . . . . Kind: type
16 . . . . . . . Name: "Core"
17 . . . . . . . Decl: *ast.TypeSpec {
18 . . . . . . . . Doc: nil
19 . . . . . . . . Name: *ast.Ident {
20 . . . . . . . . . NamePos: -
21 . . . . . . . . . Name: "Core"
22 . . . . . . . . . Obj: *(obj @ 14)
23 . . . . . . . . }
24 . . . . . . . . TypeParams: nil
25 . . . . . . . . Assign: -
26 . . . . . . . . Type: *ast.StructType {
27 . . . . . . . . . Struct: -
28 . . . . . . . . . Fields: *ast.FieldList {
29 . . . . . . . . . . Opening: -
30 . . . . . . . . . . List: []*ast.Field (len = 10) {
31 . . . . . . . . . . . 0: *ast.Field {
32 . . . . . . . . . . . . Doc: nil
33 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
34 . . . . . . . . . . . . . 0: *ast.Ident {
35 . . . . . . . . . . . . . . NamePos: -
36 . . . . . . . . . . . . . . Name: "once"
37 . . . . . . . . . . . . . . Obj: *ast.Object {
38 . . . . . . . . . . . . . . . Kind: var
39 . . . . . . . . . . . . . . . Name: "once"
40 . . . . . . . . . . . . . . . Decl: *(obj @ 31)
41 . . . . . . . . . . . . . . . Data: nil
42 . . . . . . . . . . . . . . . Type: nil
43 . . . . . . . . . . . . . . }
44 . . . . . . . . . . . . . }
45 . . . . . . . . . . . . }
46 . . . . . . . . . . . . Type: *ast.SelectorExpr {
47 . . . . . . . . . . . . . X: *ast.Ident {
48 . . . . . . . . . . . . . . NamePos: -
49 . . . . . . . . . . . . . . Name: "sync"
50 . . . . . . . . . . . . . . Obj: nil
51 . . . . . . . . . . . . . }
52 . . . . . . . . . . . . . Sel: *ast.Ident {
53 . . . . . . . . . . . . . . NamePos: -
54 . . . . . . . . . . . . . . Name: "Once"
55 . . . . . . . . . . . . . . Obj: nil
56 . . . . . . . . . . . . . }
57 . . . . . . . . . . . . }
58 . . . . . . . . . . . . Tag: nil
59 . . . . . . . . . . . . Comment: nil
60 . . . . . . . . . . . }
61 . . . . . . . . . . . 1: *ast.Field {
62 . . . . . . . . . . . . Doc: nil
63 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
64 . . . . . . . . . . . . . 0: *ast.Ident {
65 . . . . . . . . . . . . . . NamePos: -
66 . . . . . . . . . . . . . . Name: "initErr"
67 . . . . . . . . . . . . . . Obj: *ast.Object {
68 . . . . . . . . . . . . . . . Kind: var
69 . . . . . . . . . . . . . . . Name: "initErr"
70 . . . . . . . . . . . . . . . Decl: *(obj @ 61)
71 . . . . . . . . . . . . . . . Data: nil
72 . . . . . . . . . . . . . . . Type: nil
73 . . . . . . . . . . . . . . }
74 . . . . . . . . . . . . . }
75 . . . . . . . . . . . . }
76 . . . . . . . . . . . . Type: *ast.Ident {
77 . . . . . . . . . . . . . NamePos: -
78 . . . . . . . . . . . . . Name: "error"
79 . . . . . . . . . . . . . Obj: nil
80 . . . . . . . . . . . . }
81 . . . . . . . . . . . . Tag: nil
82 . . . . . . . . . . . . Comment: nil
83 . . . . . . . . . . . }
84 . . . . . . . . . . . 2: *ast.Field {
85 . . . . . . . . . . . . Doc: nil
86 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
87 . . . . . . . . . . . . . 0: *ast.Ident {
88 . . . . . . . . . . . . . . NamePos: -
89 . . . . . . . . . . . . . . Name: "App"
90 . . . . . . . . . . . . . . Obj: *ast.Object {
91 . . . . . . . . . . . . . . . Kind: var
92 . . . . . . . . . . . . . . . Name: "App"
93 . . . . . . . . . . . . . . . Decl: *(obj @ 84)
94 . . . . . . . . . . . . . . . Data: nil
95 . . . . . . . . . . . . . . . Type: nil
96 . . . . . . . . . . . . . . }
97 . . . . . . . . . . . . . }
98 . . . . . . . . . . . . }
99 . . . . . . . . . . . . Type: *ast.StarExpr {
100 . . . . . . . . . . . . . Star: -
101 . . . . . . . . . . . . . X: *ast.SelectorExpr {
102 . . . . . . . . . . . . . . X: *ast.Ident {
103 . . . . . . . . . . . . . . . NamePos: -
104 . . . . . . . . . . . . . . . Name: "application"
105 . . . . . . . . . . . . . . . Obj: nil
106 . . . . . . . . . . . . . . }
107 . . . . . . . . . . . . . . Sel: *ast.Ident {
108 . . . . . . . . . . . . . . . NamePos: -
109 . . . . . . . . . . . . . . . Name: "App"
110 . . . . . . . . . . . . . . . Obj: nil
111 . . . . . . . . . . . . . . }
112 . . . . . . . . . . . . . }
113 . . . . . . . . . . . . }
114 . . . . . . . . . . . . Tag: nil
115 . . . . . . . . . . . . Comment: nil
116 . . . . . . . . . . . }
117 . . . . . . . . . . . 3: *ast.Field {
118 . . . . . . . . . . . . Doc: nil
119 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
120 . . . . . . . . . . . . . 0: *ast.Ident {
121 . . . . . . . . . . . . . . NamePos: -
122 . . . . . . . . . . . . . . Name: "assets"
123 . . . . . . . . . . . . . . Obj: *ast.Object {
124 . . . . . . . . . . . . . . . Kind: var
125 . . . . . . . . . . . . . . . Name: "assets"
126 . . . . . . . . . . . . . . . Decl: *(obj @ 117)
127 . . . . . . . . . . . . . . . Data: nil
128 . . . . . . . . . . . . . . . Type: nil
129 . . . . . . . . . . . . . . }
130 . . . . . . . . . . . . . }
131 . . . . . . . . . . . . }
132 . . . . . . . . . . . . Type: *ast.SelectorExpr {
133 . . . . . . . . . . . . . X: *ast.Ident {
134 . . . . . . . . . . . . . . NamePos: -
135 . . . . . . . . . . . . . . Name: "embed"
136 . . . . . . . . . . . . . . Obj: nil
137 . . . . . . . . . . . . . }
138 . . . . . . . . . . . . . Sel: *ast.Ident {
139 . . . . . . . . . . . . . . NamePos: -
140 . . . . . . . . . . . . . . Name: "FS"
141 . . . . . . . . . . . . . . Obj: nil
142 . . . . . . . . . . . . . }
143 . . . . . . . . . . . . }
144 . . . . . . . . . . . . Tag: nil
145 . . . . . . . . . . . . Comment: nil
146 . . . . . . . . . . . }
147 . . . . . . . . . . . 4: *ast.Field {
148 . . . . . . . . . . . . Doc: nil
149 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
150 . . . . . . . . . . . . . 0: *ast.Ident {
151 . . . . . . . . . . . . . . NamePos: -
152 . . . . . . . . . . . . . . Name: "serviceLock"
153 . . . . . . . . . . . . . . Obj: *ast.Object {
154 . . . . . . . . . . . . . . . Kind: var
155 . . . . . . . . . . . . . . . Name: "serviceLock"
156 . . . . . . . . . . . . . . . Decl: *(obj @ 147)
157 . . . . . . . . . . . . . . . Data: nil
158 . . . . . . . . . . . . . . . Type: nil
159 . . . . . . . . . . . . . . }
160 . . . . . . . . . . . . . }
161 . . . . . . . . . . . . }
162 . . . . . . . . . . . . Type: *ast.Ident {
163 . . . . . . . . . . . . . NamePos: -
164 . . . . . . . . . . . . . Name: "bool"
165 . . . . . . . . . . . . . Obj: nil
166 . . . . . . . . . . . . }
167 . . . . . . . . . . . . Tag: nil
168 . . . . . . . . . . . . Comment: nil
169 . . . . . . . . . . . }
170 . . . . . . . . . . . 5: *ast.Field {
171 . . . . . . . . . . . . Doc: nil
172 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
173 . . . . . . . . . . . . . 0: *ast.Ident {
174 . . . . . . . . . . . . . . NamePos: -
175 . . . . . . . . . . . . . . Name: "ipcMu"
176 . . . . . . . . . . . . . . Obj: *ast.Object {
177 . . . . . . . . . . . . . . . Kind: var
178 . . . . . . . . . . . . . . . Name: "ipcMu"
179 . . . . . . . . . . . . . . . Decl: *(obj @ 170)
180 . . . . . . . . . . . . . . . Data: nil
181 . . . . . . . . . . . . . . . Type: nil
182 . . . . . . . . . . . . . . }
183 . . . . . . . . . . . . . }
184 . . . . . . . . . . . . }
185 . . . . . . . . . . . . Type: *ast.SelectorExpr {
186 . . . . . . . . . . . . . X: *ast.Ident {
187 . . . . . . . . . . . . . . NamePos: -
188 . . . . . . . . . . . . . . Name: "sync"
189 . . . . . . . . . . . . . . Obj: nil
190 . . . . . . . . . . . . . }
191 . . . . . . . . . . . . . Sel: *ast.Ident {
192 . . . . . . . . . . . . . . NamePos: -
193 . . . . . . . . . . . . . . Name: "RWMutex"
194 . . . . . . . . . . . . . . Obj: nil
195 . . . . . . . . . . . . . }
196 . . . . . . . . . . . . }
197 . . . . . . . . . . . . Tag: nil
198 . . . . . . . . . . . . Comment: nil
199 . . . . . . . . . . . }
200 . . . . . . . . . . . 6: *ast.Field {
201 . . . . . . . . . . . . Doc: nil
202 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
203 . . . . . . . . . . . . . 0: *ast.Ident {
204 . . . . . . . . . . . . . . NamePos: -
205 . . . . . . . . . . . . . . Name: "ipcHandlers"
206 . . . . . . . . . . . . . . Obj: *ast.Object {
207 . . . . . . . . . . . . . . . Kind: var
208 . . . . . . . . . . . . . . . Name: "ipcHandlers"
209 . . . . . . . . . . . . . . . Decl: *(obj @ 200)
210 . . . . . . . . . . . . . . . Data: nil
211 . . . . . . . . . . . . . . . Type: nil
212 . . . . . . . . . . . . . . }
213 . . . . . . . . . . . . . }
214 . . . . . . . . . . . . }
215 . . . . . . . . . . . . Type: *ast.ArrayType {
216 . . . . . . . . . . . . . Lbrack: -
217 . . . . . . . . . . . . . Len: nil
218 . . . . . . . . . . . . . Elt: *ast.FuncType {
219 . . . . . . . . . . . . . . Func: -
220 . . . . . . . . . . . . . . TypeParams: nil
221 . . . . . . . . . . . . . . Params: *ast.FieldList {
222 . . . . . . . . . . . . . . . Opening: -
223 . . . . . . . . . . . . . . . List: []*ast.Field (len = 2) {
224 . . . . . . . . . . . . . . . . 0: *ast.Field {
225 . . . . . . . . . . . . . . . . . Doc: nil
226 . . . . . . . . . . . . . . . . . Names: nil
227 . . . . . . . . . . . . . . . . . Type: *ast.StarExpr {
228 . . . . . . . . . . . . . . . . . . Star: -
229 . . . . . . . . . . . . . . . . . . X: *ast.Ident {
230 . . . . . . . . . . . . . . . . . . . NamePos: -
231 . . . . . . . . . . . . . . . . . . . Name: "Core"
232 . . . . . . . . . . . . . . . . . . . Obj: *(obj @ 14)
233 . . . . . . . . . . . . . . . . . . }
234 . . . . . . . . . . . . . . . . . }
235 . . . . . . . . . . . . . . . . . Tag: nil
236 . . . . . . . . . . . . . . . . . Comment: nil
237 . . . . . . . . . . . . . . . . }
238 . . . . . . . . . . . . . . . . 1: *ast.Field {
239 . . . . . . . . . . . . . . . . . Doc: nil
240 . . . . . . . . . . . . . . . . . Names: nil
241 . . . . . . . . . . . . . . . . . Type: *ast.Ident {
242 . . . . . . . . . . . . . . . . . . NamePos: -
243 . . . . . . . . . . . . . . . . . . Name: "Message"
244 . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
245 . . . . . . . . . . . . . . . . . . . Kind: type
246 . . . . . . . . . . . . . . . . . . . Name: "Message"
247 . . . . . . . . . . . . . . . . . . . Decl: *ast.TypeSpec {
248 . . . . . . . . . . . . . . . . . . . . Doc: nil
249 . . . . . . . . . . . . . . . . . . . . Name: *ast.Ident {
250 . . . . . . . . . . . . . . . . . . . . . NamePos: -
251 . . . . . . . . . . . . . . . . . . . . . Name: "Message"
252 . . . . . . . . . . . . . . . . . . . . . Obj: *(obj @ 244)
253 . . . . . . . . . . . . . . . . . . . . }
254 . . . . . . . . . . . . . . . . . . . . TypeParams: nil
255 . . . . . . . . . . . . . . . . . . . . Assign: -
256 . . . . . . . . . . . . . . . . . . . . Type: *ast.InterfaceType {
257 . . . . . . . . . . . . . . . . . . . . . Interface: -
258 . . . . . . . . . . . . . . . . . . . . . Methods: *ast.FieldList {
259 . . . . . . . . . . . . . . . . . . . . . . Opening: -
260 . . . . . . . . . . . . . . . . . . . . . . List: nil
261 . . . . . . . . . . . . . . . . . . . . . . Closing: -
262 . . . . . . . . . . . . . . . . . . . . . }
263 . . . . . . . . . . . . . . . . . . . . . Incomplete: false
264 . . . . . . . . . . . . . . . . . . . . }
265 . . . . . . . . . . . . . . . . . . . . Comment: nil
266 . . . . . . . . . . . . . . . . . . . }
267 . . . . . . . . . . . . . . . . . . . Data: nil
268 . . . . . . . . . . . . . . . . . . . Type: nil
269 . . . . . . . . . . . . . . . . . . }
270 . . . . . . . . . . . . . . . . . }
271 . . . . . . . . . . . . . . . . . Tag: nil
272 . . . . . . . . . . . . . . . . . Comment: nil
273 . . . . . . . . . . . . . . . . }
274 . . . . . . . . . . . . . . . }
275 . . . . . . . . . . . . . . . Closing: -
276 . . . . . . . . . . . . . . }
277 . . . . . . . . . . . . . . Results: *ast.FieldList {
278 . . . . . . . . . . . . . . . Opening: -
279 . . . . . . . . . . . . . . . List: []*ast.Field (len = 1) {
280 . . . . . . . . . . . . . . . . 0: *ast.Field {
281 . . . . . . . . . . . . . . . . . Doc: nil
282 . . . . . . . . . . . . . . . . . Names: nil
283 . . . . . . . . . . . . . . . . . Type: *ast.Ident {
284 . . . . . . . . . . . . . . . . . . NamePos: -
285 . . . . . . . . . . . . . . . . . . Name: "error"
286 . . . . . . . . . . . . . . . . . . Obj: nil
287 . . . . . . . . . . . . . . . . . }
288 . . . . . . . . . . . . . . . . . Tag: nil
289 . . . . . . . . . . . . . . . . . Comment: nil
290 . . . . . . . . . . . . . . . . }
291 . . . . . . . . . . . . . . . }
292 . . . . . . . . . . . . . . . Closing: -
293 . . . . . . . . . . . . . . }
294 . . . . . . . . . . . . . }
295 . . . . . . . . . . . . }
296 . . . . . . . . . . . . Tag: nil
297 . . . . . . . . . . . . Comment: nil
298 . . . . . . . . . . . }
299 . . . . . . . . . . . 7: *ast.Field {
300 . . . . . . . . . . . . Doc: nil
301 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
302 . . . . . . . . . . . . . 0: *ast.Ident {
303 . . . . . . . . . . . . . . NamePos: -
304 . . . . . . . . . . . . . . Name: "serviceMu"
305 . . . . . . . . . . . . . . Obj: *ast.Object {
306 . . . . . . . . . . . . . . . Kind: var
307 . . . . . . . . . . . . . . . Name: "serviceMu"
308 . . . . . . . . . . . . . . . Decl: *(obj @ 299)
309 . . . . . . . . . . . . . . . Data: nil
310 . . . . . . . . . . . . . . . Type: nil
311 . . . . . . . . . . . . . . }
312 . . . . . . . . . . . . . }
313 . . . . . . . . . . . . }
314 . . . . . . . . . . . . Type: *ast.SelectorExpr {
315 . . . . . . . . . . . . . X: *ast.Ident {
316 . . . . . . . . . . . . . . NamePos: -
317 . . . . . . . . . . . . . . Name: "sync"
318 . . . . . . . . . . . . . . Obj: nil
319 . . . . . . . . . . . . . }
320 . . . . . . . . . . . . . Sel: *ast.Ident {
321 . . . . . . . . . . . . . . NamePos: -
322 . . . . . . . . . . . . . . Name: "RWMutex"
323 . . . . . . . . . . . . . . Obj: nil
324 . . . . . . . . . . . . . }
325 . . . . . . . . . . . . }
326 . . . . . . . . . . . . Tag: nil
327 . . . . . . . . . . . . Comment: nil
328 . . . . . . . . . . . }
329 . . . . . . . . . . . 8: *ast.Field {
330 . . . . . . . . . . . . Doc: nil
331 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
332 . . . . . . . . . . . . . 0: *ast.Ident {
333 . . . . . . . . . . . . . . NamePos: -
334 . . . . . . . . . . . . . . Name: "services"
335 . . . . . . . . . . . . . . Obj: *ast.Object {
336 . . . . . . . . . . . . . . . Kind: var
337 . . . . . . . . . . . . . . . Name: "services"
338 . . . . . . . . . . . . . . . Decl: *(obj @ 329)
339 . . . . . . . . . . . . . . . Data: nil
340 . . . . . . . . . . . . . . . Type: nil
341 . . . . . . . . . . . . . . }
342 . . . . . . . . . . . . . }
343 . . . . . . . . . . . . }
344 . . . . . . . . . . . . Type: *ast.MapType {
345 . . . . . . . . . . . . . Map: -
346 . . . . . . . . . . . . . Key: *ast.Ident {
347 . . . . . . . . . . . . . . NamePos: -
348 . . . . . . . . . . . . . . Name: "string"
349 . . . . . . . . . . . . . . Obj: nil
350 . . . . . . . . . . . . . }
351 . . . . . . . . . . . . . Value: *ast.Ident {
352 . . . . . . . . . . . . . . NamePos: -
353 . . . . . . . . . . . . . . Name: "any"
354 . . . . . . . . . . . . . . Obj: nil
355 . . . . . . . . . . . . . }
356 . . . . . . . . . . . . }
357 . . . . . . . . . . . . Tag: nil
358 . . . . . . . . . . . . Comment: nil
359 . . . . . . . . . . . }
360 . . . . . . . . . . . 9: *ast.Field {
361 . . . . . . . . . . . . Doc: nil
362 . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
363 . . . . . . . . . . . . . 0: *ast.Ident {
364 . . . . . . . . . . . . . . NamePos: -
365 . . . . . . . . . . . . . . Name: "servicesLocked"
366 . . . . . . . . . . . . . . Obj: *ast.Object {
367 . . . . . . . . . . . . . . . Kind: var
368 . . . . . . . . . . . . . . . Name: "servicesLocked"
369 . . . . . . . . . . . . . . . Decl: *(obj @ 360)
370 . . . . . . . . . . . . . . . Data: nil
371 . . . . . . . . . . . . . . . Type: nil
372 . . . . . . . . . . . . . . }
373 . . . . . . . . . . . . . }
374 . . . . . . . . . . . . }
375 . . . . . . . . . . . . Type: *ast.Ident {
376 . . . . . . . . . . . . . NamePos: -
377 . . . . . . . . . . . . . Name: "bool"
378 . . . . . . . . . . . . . Obj: nil
379 . . . . . . . . . . . . }
380 . . . . . . . . . . . . Tag: nil
381 . . . . . . . . . . . . Comment: nil
382 . . . . . . . . . . . }
383 . . . . . . . . . . }
384 . . . . . . . . . . Closing: -
385 . . . . . . . . . }
386 . . . . . . . . . Incomplete: false
387 . . . . . . . . }
388 . . . . . . . . Comment: nil
389 . . . . . . . }
390 . . . . . . . Data: nil
391 . . . . . . . Type: nil
392 . . . . . . }
393 . . . . . }
394 . . . . }
395 . . . . Tag: nil
396 . . . . Comment: nil
397 . . . }
398 . . }
399 . . Closing: -
400 . }
401 . Results: *ast.FieldList {
402 . . Opening: -
403 . . List: []*ast.Field (len = 1) {
404 . . . 0: *ast.Field {
405 . . . . Doc: nil
406 . . . . Names: nil
407 . . . . Type: *ast.Ident {
408 . . . . . NamePos: -
409 . . . . . Name: "error"
410 . . . . . Obj: nil
411 . . . . }
412 . . . . Tag: nil
413 . . . . Comment: nil
414 . . . }
415 . . }
416 . . Closing: -
417 . }
418 }
```
### `type Runtime`
```go
type Runtime 0 *ast.StructType {
1 . Struct: -
2 . Fields: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 2) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "core"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: var
13 . . . . . . . Name: "core"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.StarExpr {
21 . . . . . Star: -
22 . . . . . X: *ast.Ident {
23 . . . . . . NamePos: -
24 . . . . . . Name: "Core"
25 . . . . . . Obj: nil
26 . . . . . }
27 . . . . }
28 . . . . Tag: nil
29 . . . . Comment: nil
30 . . . }
31 . . . 1: *ast.Field {
32 . . . . Doc: nil
33 . . . . Names: []*ast.Ident (len = 1) {
34 . . . . . 0: *ast.Ident {
35 . . . . . . NamePos: -
36 . . . . . . Name: "opts"
37 . . . . . . Obj: *ast.Object {
38 . . . . . . . Kind: var
39 . . . . . . . Name: "opts"
40 . . . . . . . Decl: *(obj @ 31)
41 . . . . . . . Data: nil
42 . . . . . . . Type: nil
43 . . . . . . }
44 . . . . . }
45 . . . . }
46 . . . . Type: *ast.Ident {
47 . . . . . NamePos: -
48 . . . . . Name: "T"
49 . . . . . Obj: *ast.Object {
50 . . . . . . Kind: type
51 . . . . . . Name: "T"
52 . . . . . . Decl: *ast.Field {
53 . . . . . . . Doc: nil
54 . . . . . . . Names: []*ast.Ident (len = 1) {
55 . . . . . . . . 0: *ast.Ident {
56 . . . . . . . . . NamePos: -
57 . . . . . . . . . Name: "T"
58 . . . . . . . . . Obj: *(obj @ 49)
59 . . . . . . . . }
60 . . . . . . . }
61 . . . . . . . Type: *ast.Ident {
62 . . . . . . . . NamePos: -
63 . . . . . . . . Name: "any"
64 . . . . . . . . Obj: nil
65 . . . . . . . }
66 . . . . . . . Tag: nil
67 . . . . . . . Comment: nil
68 . . . . . . }
69 . . . . . . Data: nil
70 . . . . . . Type: nil
71 . . . . . }
72 . . . . }
73 . . . . Tag: nil
74 . . . . Comment: nil
75 . . . }
76 . . }
77 . . Closing: -
78 . }
79 . Incomplete: false
80 }
```
Runtime is a helper struct embedded in services to provide access to the core application.
#### Methods
- `Config() 0 *ast.Ident {
1 . NamePos: -
2 . Name: "Config"
3 . Obj: nil
4 }
`: Config returns the registered Config service from the core application.
- `Core() 0 *ast.StarExpr {
1 . Star: -
2 . X: *ast.Ident {
3 . . NamePos: -
4 . . Name: "Core"
5 . . Obj: nil
6 . }
7 }
`: Core returns the central core instance.
### `type WindowConfig`
```go
type WindowConfig 0 *ast.StructType {
1 . Struct: -
2 . Fields: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 5) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "Name"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: var
13 . . . . . . . Name: "Name"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.Ident {
21 . . . . . NamePos: -
22 . . . . . Name: "string"
23 . . . . . Obj: nil
24 . . . . }
25 . . . . Tag: nil
26 . . . . Comment: nil
27 . . . }
28 . . . 1: *ast.Field {
29 . . . . Doc: nil
30 . . . . Names: []*ast.Ident (len = 1) {
31 . . . . . 0: *ast.Ident {
32 . . . . . . NamePos: -
33 . . . . . . Name: "Title"
34 . . . . . . Obj: *ast.Object {
35 . . . . . . . Kind: var
36 . . . . . . . Name: "Title"
37 . . . . . . . Decl: *(obj @ 28)
38 . . . . . . . Data: nil
39 . . . . . . . Type: nil
40 . . . . . . }
41 . . . . . }
42 . . . . }
43 . . . . Type: *ast.Ident {
44 . . . . . NamePos: -
45 . . . . . Name: "string"
46 . . . . . Obj: nil
47 . . . . }
48 . . . . Tag: nil
49 . . . . Comment: nil
50 . . . }
51 . . . 2: *ast.Field {
52 . . . . Doc: nil
53 . . . . Names: []*ast.Ident (len = 1) {
54 . . . . . 0: *ast.Ident {
55 . . . . . . NamePos: -
56 . . . . . . Name: "URL"
57 . . . . . . Obj: *ast.Object {
58 . . . . . . . Kind: var
59 . . . . . . . Name: "URL"
60 . . . . . . . Decl: *(obj @ 51)
61 . . . . . . . Data: nil
62 . . . . . . . Type: nil
63 . . . . . . }
64 . . . . . }
65 . . . . }
66 . . . . Type: *ast.Ident {
67 . . . . . NamePos: -
68 . . . . . Name: "string"
69 . . . . . Obj: nil
70 . . . . }
71 . . . . Tag: nil
72 . . . . Comment: nil
73 . . . }
74 . . . 3: *ast.Field {
75 . . . . Doc: nil
76 . . . . Names: []*ast.Ident (len = 1) {
77 . . . . . 0: *ast.Ident {
78 . . . . . . NamePos: -
79 . . . . . . Name: "Width"
80 . . . . . . Obj: *ast.Object {
81 . . . . . . . Kind: var
82 . . . . . . . Name: "Width"
83 . . . . . . . Decl: *(obj @ 74)
84 . . . . . . . Data: nil
85 . . . . . . . Type: nil
86 . . . . . . }
87 . . . . . }
88 . . . . }
89 . . . . Type: *ast.Ident {
90 . . . . . NamePos: -
91 . . . . . Name: "int"
92 . . . . . Obj: nil
93 . . . . }
94 . . . . Tag: nil
95 . . . . Comment: nil
96 . . . }
97 . . . 4: *ast.Field {
98 . . . . Doc: nil
99 . . . . Names: []*ast.Ident (len = 1) {
100 . . . . . 0: *ast.Ident {
101 . . . . . . NamePos: -
102 . . . . . . Name: "Height"
103 . . . . . . Obj: *ast.Object {
104 . . . . . . . Kind: var
105 . . . . . . . Name: "Height"
106 . . . . . . . Decl: *(obj @ 97)
107 . . . . . . . Data: nil
108 . . . . . . . Type: nil
109 . . . . . . }
110 . . . . . }
111 . . . . }
112 . . . . Type: *ast.Ident {
113 . . . . . NamePos: -
114 . . . . . Name: "int"
115 . . . . . Obj: nil
116 . . . . }
117 . . . . Tag: nil
118 . . . . Comment: *ast.CommentGroup {
119 . . . . . List: []*ast.Comment (len = 1) {
120 . . . . . . 0: *ast.Comment {
121 . . . . . . . Slash: -
122 . . . . . . . Text: "// Add other common window options here as needed"
123 . . . . . . }
124 . . . . . }
125 . . . . }
126 . . . }
127 . . }
128 . . Closing: -
129 . }
130 . Incomplete: false
131 }
```
WindowConfig represents the configuration for a window.
### `type WindowOption`
```go
type WindowOption 0 *ast.InterfaceType {
1 . Interface: -
2 . Methods: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 1) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "Apply"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: func
13 . . . . . . . Name: "Apply"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.FuncType {
21 . . . . . Func: -
22 . . . . . TypeParams: nil
23 . . . . . Params: *ast.FieldList {
24 . . . . . . Opening: -
25 . . . . . . List: []*ast.Field (len = 1) {
26 . . . . . . . 0: *ast.Field {
27 . . . . . . . . Doc: nil
28 . . . . . . . . Names: nil
29 . . . . . . . . Type: *ast.StarExpr {
30 . . . . . . . . . Star: -
31 . . . . . . . . . X: *ast.Ident {
32 . . . . . . . . . . NamePos: -
33 . . . . . . . . . . Name: "WindowConfig"
34 . . . . . . . . . . Obj: *ast.Object {
35 . . . . . . . . . . . Kind: type
36 . . . . . . . . . . . Name: "WindowConfig"
37 . . . . . . . . . . . Decl: *ast.TypeSpec {
38 . . . . . . . . . . . . Doc: nil
39 . . . . . . . . . . . . Name: *ast.Ident {
40 . . . . . . . . . . . . . NamePos: -
41 . . . . . . . . . . . . . Name: "WindowConfig"
42 . . . . . . . . . . . . . Obj: *(obj @ 34)
43 . . . . . . . . . . . . }
44 . . . . . . . . . . . . TypeParams: nil
45 . . . . . . . . . . . . Assign: -
46 . . . . . . . . . . . . Type: *ast.StructType {
47 . . . . . . . . . . . . . Struct: -
48 . . . . . . . . . . . . . Fields: *ast.FieldList {
49 . . . . . . . . . . . . . . Opening: -
50 . . . . . . . . . . . . . . List: []*ast.Field (len = 5) {
51 . . . . . . . . . . . . . . . 0: *ast.Field {
52 . . . . . . . . . . . . . . . . Doc: nil
53 . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
54 . . . . . . . . . . . . . . . . . 0: *ast.Ident {
55 . . . . . . . . . . . . . . . . . . NamePos: -
56 . . . . . . . . . . . . . . . . . . Name: "Name"
57 . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
58 . . . . . . . . . . . . . . . . . . . Kind: var
59 . . . . . . . . . . . . . . . . . . . Name: "Name"
60 . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 51)
61 . . . . . . . . . . . . . . . . . . . Data: nil
62 . . . . . . . . . . . . . . . . . . . Type: nil
63 . . . . . . . . . . . . . . . . . . }
64 . . . . . . . . . . . . . . . . . }
65 . . . . . . . . . . . . . . . . }
66 . . . . . . . . . . . . . . . . Type: *ast.Ident {
67 . . . . . . . . . . . . . . . . . NamePos: -
68 . . . . . . . . . . . . . . . . . Name: "string"
69 . . . . . . . . . . . . . . . . . Obj: nil
70 . . . . . . . . . . . . . . . . }
71 . . . . . . . . . . . . . . . . Tag: nil
72 . . . . . . . . . . . . . . . . Comment: nil
73 . . . . . . . . . . . . . . . }
74 . . . . . . . . . . . . . . . 1: *ast.Field {
75 . . . . . . . . . . . . . . . . Doc: nil
76 . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
77 . . . . . . . . . . . . . . . . . 0: *ast.Ident {
78 . . . . . . . . . . . . . . . . . . NamePos: -
79 . . . . . . . . . . . . . . . . . . Name: "Title"
80 . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
81 . . . . . . . . . . . . . . . . . . . Kind: var
82 . . . . . . . . . . . . . . . . . . . Name: "Title"
83 . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 74)
84 . . . . . . . . . . . . . . . . . . . Data: nil
85 . . . . . . . . . . . . . . . . . . . Type: nil
86 . . . . . . . . . . . . . . . . . . }
87 . . . . . . . . . . . . . . . . . }
88 . . . . . . . . . . . . . . . . }
89 . . . . . . . . . . . . . . . . Type: *ast.Ident {
90 . . . . . . . . . . . . . . . . . NamePos: -
91 . . . . . . . . . . . . . . . . . Name: "string"
92 . . . . . . . . . . . . . . . . . Obj: nil
93 . . . . . . . . . . . . . . . . }
94 . . . . . . . . . . . . . . . . Tag: nil
95 . . . . . . . . . . . . . . . . Comment: nil
96 . . . . . . . . . . . . . . . }
97 . . . . . . . . . . . . . . . 2: *ast.Field {
98 . . . . . . . . . . . . . . . . Doc: nil
99 . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
100 . . . . . . . . . . . . . . . . . 0: *ast.Ident {
101 . . . . . . . . . . . . . . . . . . NamePos: -
102 . . . . . . . . . . . . . . . . . . Name: "URL"
103 . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
104 . . . . . . . . . . . . . . . . . . . Kind: var
105 . . . . . . . . . . . . . . . . . . . Name: "URL"
106 . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 97)
107 . . . . . . . . . . . . . . . . . . . Data: nil
108 . . . . . . . . . . . . . . . . . . . Type: nil
109 . . . . . . . . . . . . . . . . . . }
110 . . . . . . . . . . . . . . . . . }
111 . . . . . . . . . . . . . . . . }
112 . . . . . . . . . . . . . . . . Type: *ast.Ident {
113 . . . . . . . . . . . . . . . . . NamePos: -
114 . . . . . . . . . . . . . . . . . Name: "string"
115 . . . . . . . . . . . . . . . . . Obj: nil
116 . . . . . . . . . . . . . . . . }
117 . . . . . . . . . . . . . . . . Tag: nil
118 . . . . . . . . . . . . . . . . Comment: nil
119 . . . . . . . . . . . . . . . }
120 . . . . . . . . . . . . . . . 3: *ast.Field {
121 . . . . . . . . . . . . . . . . Doc: nil
122 . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
123 . . . . . . . . . . . . . . . . . 0: *ast.Ident {
124 . . . . . . . . . . . . . . . . . . NamePos: -
125 . . . . . . . . . . . . . . . . . . Name: "Width"
126 . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
127 . . . . . . . . . . . . . . . . . . . Kind: var
128 . . . . . . . . . . . . . . . . . . . Name: "Width"
129 . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 120)
130 . . . . . . . . . . . . . . . . . . . Data: nil
131 . . . . . . . . . . . . . . . . . . . Type: nil
132 . . . . . . . . . . . . . . . . . . }
133 . . . . . . . . . . . . . . . . . }
134 . . . . . . . . . . . . . . . . }
135 . . . . . . . . . . . . . . . . Type: *ast.Ident {
136 . . . . . . . . . . . . . . . . . NamePos: -
137 . . . . . . . . . . . . . . . . . Name: "int"
138 . . . . . . . . . . . . . . . . . Obj: nil
139 . . . . . . . . . . . . . . . . }
140 . . . . . . . . . . . . . . . . Tag: nil
141 . . . . . . . . . . . . . . . . Comment: nil
142 . . . . . . . . . . . . . . . }
143 . . . . . . . . . . . . . . . 4: *ast.Field {
144 . . . . . . . . . . . . . . . . Doc: nil
145 . . . . . . . . . . . . . . . . Names: []*ast.Ident (len = 1) {
146 . . . . . . . . . . . . . . . . . 0: *ast.Ident {
147 . . . . . . . . . . . . . . . . . . NamePos: -
148 . . . . . . . . . . . . . . . . . . Name: "Height"
149 . . . . . . . . . . . . . . . . . . Obj: *ast.Object {
150 . . . . . . . . . . . . . . . . . . . Kind: var
151 . . . . . . . . . . . . . . . . . . . Name: "Height"
152 . . . . . . . . . . . . . . . . . . . Decl: *(obj @ 143)
153 . . . . . . . . . . . . . . . . . . . Data: nil
154 . . . . . . . . . . . . . . . . . . . Type: nil
155 . . . . . . . . . . . . . . . . . . }
156 . . . . . . . . . . . . . . . . . }
157 . . . . . . . . . . . . . . . . }
158 . . . . . . . . . . . . . . . . Type: *ast.Ident {
159 . . . . . . . . . . . . . . . . . NamePos: -
160 . . . . . . . . . . . . . . . . . Name: "int"
161 . . . . . . . . . . . . . . . . . Obj: nil
162 . . . . . . . . . . . . . . . . }
163 . . . . . . . . . . . . . . . . Tag: nil
164 . . . . . . . . . . . . . . . . Comment: *ast.CommentGroup {
165 . . . . . . . . . . . . . . . . . List: []*ast.Comment (len = 1) {
166 . . . . . . . . . . . . . . . . . . 0: *ast.Comment {
167 . . . . . . . . . . . . . . . . . . . Slash: -
168 . . . . . . . . . . . . . . . . . . . Text: "// Add other common window options here as needed"
169 . . . . . . . . . . . . . . . . . . }
170 . . . . . . . . . . . . . . . . . }
171 . . . . . . . . . . . . . . . . }
172 . . . . . . . . . . . . . . . }
173 . . . . . . . . . . . . . . }
174 . . . . . . . . . . . . . . Closing: -
175 . . . . . . . . . . . . . }
176 . . . . . . . . . . . . . Incomplete: false
177 . . . . . . . . . . . . }
178 . . . . . . . . . . . . Comment: nil
179 . . . . . . . . . . . }
180 . . . . . . . . . . . Data: nil
181 . . . . . . . . . . . Type: nil
182 . . . . . . . . . . }
183 . . . . . . . . . }
184 . . . . . . . . }
185 . . . . . . . . Tag: nil
186 . . . . . . . . Comment: nil
187 . . . . . . . }
188 . . . . . . }
189 . . . . . . Closing: -
190 . . . . . }
191 . . . . . Results: nil
192 . . . . }
193 . . . . Tag: nil
194 . . . . Comment: nil
195 . . . }
196 . . }
197 . . Closing: -
198 . }
199 . Incomplete: false
200 }
```
WindowOption configures window creation.
### `type Workspace`
```go
type Workspace 0 *ast.InterfaceType {
1 . Interface: -
2 . Methods: *ast.FieldList {
3 . . Opening: -
4 . . List: []*ast.Field (len = 4) {
5 . . . 0: *ast.Field {
6 . . . . Doc: nil
7 . . . . Names: []*ast.Ident (len = 1) {
8 . . . . . 0: *ast.Ident {
9 . . . . . . NamePos: -
10 . . . . . . Name: "CreateWorkspace"
11 . . . . . . Obj: *ast.Object {
12 . . . . . . . Kind: func
13 . . . . . . . Name: "CreateWorkspace"
14 . . . . . . . Decl: *(obj @ 5)
15 . . . . . . . Data: nil
16 . . . . . . . Type: nil
17 . . . . . . }
18 . . . . . }
19 . . . . }
20 . . . . Type: *ast.FuncType {
21 . . . . . Func: -
22 . . . . . TypeParams: nil
23 . . . . . Params: *ast.FieldList {
24 . . . . . . Opening: -
25 . . . . . . List: []*ast.Field (len = 1) {
26 . . . . . . . 0: *ast.Field {
27 . . . . . . . . Doc: nil
28 . . . . . . . . Names: []*ast.Ident (len = 2) {
29 . . . . . . . . . 0: *ast.Ident {
30 . . . . . . . . . . NamePos: -
31 . . . . . . . . . . Name: "identifier"
32 . . . . . . . . . . Obj: *ast.Object {
33 . . . . . . . . . . . Kind: var
34 . . . . . . . . . . . Name: "identifier"
35 . . . . . . . . . . . Decl: *(obj @ 26)
36 . . . . . . . . . . . Data: nil
37 . . . . . . . . . . . Type: nil
38 . . . . . . . . . . }
39 . . . . . . . . . }
40 . . . . . . . . . 1: *ast.Ident {
41 . . . . . . . . . . NamePos: -
42 . . . . . . . . . . Name: "password"
43 . . . . . . . . . . Obj: *ast.Object {
44 . . . . . . . . . . . Kind: var
45 . . . . . . . . . . . Name: "password"
46 . . . . . . . . . . . Decl: *(obj @ 26)
47 . . . . . . . . . . . Data: nil
48 . . . . . . . . . . . Type: nil
49 . . . . . . . . . . }
50 . . . . . . . . . }
51 . . . . . . . . }
52 . . . . . . . . Type: *ast.Ident {
53 . . . . . . . . . NamePos: -
54 . . . . . . . . . Name: "string"
55 . . . . . . . . . Obj: nil
56 . . . . . . . . }
57 . . . . . . . . Tag: nil
58 . . . . . . . . Comment: nil
59 . . . . . . . }
60 . . . . . . }
61 . . . . . . Closing: -
62 . . . . . }
63 . . . . . Results: *ast.FieldList {
64 . . . . . . Opening: -
65 . . . . . . List: []*ast.Field (len = 2) {
66 . . . . . . . 0: *ast.Field {
67 . . . . . . . . Doc: nil
68 . . . . . . . . Names: nil
69 . . . . . . . . Type: *ast.Ident {
70 . . . . . . . . . NamePos: -
71 . . . . . . . . . Name: "string"
72 . . . . . . . . . Obj: nil
73 . . . . . . . . }
74 . . . . . . . . Tag: nil
75 . . . . . . . . Comment: nil
76 . . . . . . . }
77 . . . . . . . 1: *ast.Field {
78 . . . . . . . . Doc: nil
79 . . . . . . . . Names: nil
80 . . . . . . . . Type: *ast.Ident {
81 . . . . . . . . . NamePos: -
82 . . . . . . . . . Name: "error"
83 . . . . . . . . . Obj: nil
84 . . . . . . . . }
85 . . . . . . . . Tag: nil
86 . . . . . . . . Comment: nil
87 . . . . . . . }
88 . . . . . . }
89 . . . . . . Closing: -
90 . . . . . }
91 . . . . }
92 . . . . Tag: nil
93 . . . . Comment: nil
94 . . . }
95 . . . 1: *ast.Field {
96 . . . . Doc: nil
97 . . . . Names: []*ast.Ident (len = 1) {
98 . . . . . 0: *ast.Ident {
99 . . . . . . NamePos: -
100 . . . . . . Name: "SwitchWorkspace"
101 . . . . . . Obj: *ast.Object {
102 . . . . . . . Kind: func
103 . . . . . . . Name: "SwitchWorkspace"
104 . . . . . . . Decl: *(obj @ 95)
105 . . . . . . . Data: nil
106 . . . . . . . Type: nil
107 . . . . . . }
108 . . . . . }
109 . . . . }
110 . . . . Type: *ast.FuncType {
111 . . . . . Func: -
112 . . . . . TypeParams: nil
113 . . . . . Params: *ast.FieldList {
114 . . . . . . Opening: -
115 . . . . . . List: []*ast.Field (len = 1) {
116 . . . . . . . 0: *ast.Field {
117 . . . . . . . . Doc: nil
118 . . . . . . . . Names: []*ast.Ident (len = 1) {
119 . . . . . . . . . 0: *ast.Ident {
120 . . . . . . . . . . NamePos: -
121 . . . . . . . . . . Name: "name"
122 . . . . . . . . . . Obj: *ast.Object {
123 . . . . . . . . . . . Kind: var
124 . . . . . . . . . . . Name: "name"
125 . . . . . . . . . . . Decl: *(obj @ 116)
126 . . . . . . . . . . . Data: nil
127 . . . . . . . . . . . Type: nil
128 . . . . . . . . . . }
129 . . . . . . . . . }
130 . . . . . . . . }
131 . . . . . . . . Type: *ast.Ident {
132 . . . . . . . . . NamePos: -
133 . . . . . . . . . Name: "string"
134 . . . . . . . . . Obj: nil
135 . . . . . . . . }
136 . . . . . . . . Tag: nil
137 . . . . . . . . Comment: nil
138 . . . . . . . }
139 . . . . . . }
140 . . . . . . Closing: -
141 . . . . . }
142 . . . . . Results: *ast.FieldList {
143 . . . . . . Opening: -
144 . . . . . . List: []*ast.Field (len = 1) {
145 . . . . . . . 0: *ast.Field {
146 . . . . . . . . Doc: nil
147 . . . . . . . . Names: nil
148 . . . . . . . . Type: *ast.Ident {
149 . . . . . . . . . NamePos: -
150 . . . . . . . . . Name: "error"
151 . . . . . . . . . Obj: nil
152 . . . . . . . . }
153 . . . . . . . . Tag: nil
154 . . . . . . . . Comment: nil
155 . . . . . . . }
156 . . . . . . }
157 . . . . . . Closing: -
158 . . . . . }
159 . . . . }
160 . . . . Tag: nil
161 . . . . Comment: nil
162 . . . }
163 . . . 2: *ast.Field {
164 . . . . Doc: nil
165 . . . . Names: []*ast.Ident (len = 1) {
166 . . . . . 0: *ast.Ident {
167 . . . . . . NamePos: -
168 . . . . . . Name: "WorkspaceFileGet"
169 . . . . . . Obj: *ast.Object {
170 . . . . . . . Kind: func
171 . . . . . . . Name: "WorkspaceFileGet"
172 . . . . . . . Decl: *(obj @ 163)
173 . . . . . . . Data: nil
174 . . . . . . . Type: nil
175 . . . . . . }
176 . . . . . }
177 . . . . }
178 . . . . Type: *ast.FuncType {
179 . . . . . Func: -
180 . . . . . TypeParams: nil
181 . . . . . Params: *ast.FieldList {
182 . . . . . . Opening: -
183 . . . . . . List: []*ast.Field (len = 1) {
184 . . . . . . . 0: *ast.Field {
185 . . . . . . . . Doc: nil
186 . . . . . . . . Names: []*ast.Ident (len = 1) {
187 . . . . . . . . . 0: *ast.Ident {
188 . . . . . . . . . . NamePos: -
189 . . . . . . . . . . Name: "filename"
190 . . . . . . . . . . Obj: *ast.Object {
191 . . . . . . . . . . . Kind: var
192 . . . . . . . . . . . Name: "filename"
193 . . . . . . . . . . . Decl: *(obj @ 184)
194 . . . . . . . . . . . Data: nil
195 . . . . . . . . . . . Type: nil
196 . . . . . . . . . . }
197 . . . . . . . . . }
198 . . . . . . . . }
199 . . . . . . . . Type: *ast.Ident {
200 . . . . . . . . . NamePos: -
201 . . . . . . . . . Name: "string"
202 . . . . . . . . . Obj: nil
203 . . . . . . . . }
204 . . . . . . . . Tag: nil
205 . . . . . . . . Comment: nil
206 . . . . . . . }
207 . . . . . . }
208 . . . . . . Closing: -
209 . . . . . }
210 . . . . . Results: *ast.FieldList {
211 . . . . . . Opening: -
212 . . . . . . List: []*ast.Field (len = 2) {
213 . . . . . . . 0: *ast.Field {
214 . . . . . . . . Doc: nil
215 . . . . . . . . Names: nil
216 . . . . . . . . Type: *ast.Ident {
217 . . . . . . . . . NamePos: -
218 . . . . . . . . . Name: "string"
219 . . . . . . . . . Obj: nil
220 . . . . . . . . }
221 . . . . . . . . Tag: nil
222 . . . . . . . . Comment: nil
223 . . . . . . . }
224 . . . . . . . 1: *ast.Field {
225 . . . . . . . . Doc: nil
226 . . . . . . . . Names: nil
227 . . . . . . . . Type: *ast.Ident {
228 . . . . . . . . . NamePos: -
229 . . . . . . . . . Name: "error"
230 . . . . . . . . . Obj: nil
231 . . . . . . . . }
232 . . . . . . . . Tag: nil
233 . . . . . . . . Comment: nil
234 . . . . . . . }
235 . . . . . . }
236 . . . . . . Closing: -
237 . . . . . }
238 . . . . }
239 . . . . Tag: nil
240 . . . . Comment: nil
241 . . . }
242 . . . 3: *ast.Field {
243 . . . . Doc: nil
244 . . . . Names: []*ast.Ident (len = 1) {
245 . . . . . 0: *ast.Ident {
246 . . . . . . NamePos: -
247 . . . . . . Name: "WorkspaceFileSet"
248 . . . . . . Obj: *ast.Object {
249 . . . . . . . Kind: func
250 . . . . . . . Name: "WorkspaceFileSet"
251 . . . . . . . Decl: *(obj @ 242)
252 . . . . . . . Data: nil
253 . . . . . . . Type: nil
254 . . . . . . }
255 . . . . . }
256 . . . . }
257 . . . . Type: *ast.FuncType {
258 . . . . . Func: -
259 . . . . . TypeParams: nil
260 . . . . . Params: *ast.FieldList {
261 . . . . . . Opening: -
262 . . . . . . List: []*ast.Field (len = 1) {
263 . . . . . . . 0: *ast.Field {
264 . . . . . . . . Doc: nil
265 . . . . . . . . Names: []*ast.Ident (len = 2) {
266 . . . . . . . . . 0: *ast.Ident {
267 . . . . . . . . . . NamePos: -
268 . . . . . . . . . . Name: "filename"
269 . . . . . . . . . . Obj: *ast.Object {
270 . . . . . . . . . . . Kind: var
271 . . . . . . . . . . . Name: "filename"
272 . . . . . . . . . . . Decl: *(obj @ 263)
273 . . . . . . . . . . . Data: nil
274 . . . . . . . . . . . Type: nil
275 . . . . . . . . . . }
276 . . . . . . . . . }
277 . . . . . . . . . 1: *ast.Ident {
278 . . . . . . . . . . NamePos: -
279 . . . . . . . . . . Name: "content"
280 . . . . . . . . . . Obj: *ast.Object {
281 . . . . . . . . . . . Kind: var
282 . . . . . . . . . . . Name: "content"
283 . . . . . . . . . . . Decl: *(obj @ 263)
284 . . . . . . . . . . . Data: nil
285 . . . . . . . . . . . Type: nil
286 . . . . . . . . . . }
287 . . . . . . . . . }
288 . . . . . . . . }
289 . . . . . . . . Type: *ast.Ident {
290 . . . . . . . . . NamePos: -
291 . . . . . . . . . Name: "string"
292 . . . . . . . . . Obj: nil
293 . . . . . . . . }
294 . . . . . . . . Tag: nil
295 . . . . . . . . Comment: nil
296 . . . . . . . }
297 . . . . . . }
298 . . . . . . Closing: -
299 . . . . . }
300 . . . . . Results: *ast.FieldList {
301 . . . . . . Opening: -
302 . . . . . . List: []*ast.Field (len = 1) {
303 . . . . . . . 0: *ast.Field {
304 . . . . . . . . Doc: nil
305 . . . . . . . . Names: nil
306 . . . . . . . . Type: *ast.Ident {
307 . . . . . . . . . NamePos: -
308 . . . . . . . . . Name: "error"
309 . . . . . . . . . Obj: nil
310 . . . . . . . . }
311 . . . . . . . . Tag: nil
312 . . . . . . . . Comment: nil
313 . . . . . . . }
314 . . . . . . }
315 . . . . . . Closing: -
316 . . . . . }
317 . . . . }
318 . . . . Tag: nil
319 . . . . Comment: nil
320 . . . }
321 . . }
322 . . Closing: -
323 . }
324 . Incomplete: false
325 }
```
Workspace manages user workspaces.
## Functions
- `App() 0 *ast.StarExpr {
1 . Star: -
2 . X: *ast.SelectorExpr {
3 . . X: *ast.Ident {
4 . . . NamePos: -
5 . . . Name: "application"
6 . . . Obj: nil
7 . . }
8 . . Sel: *ast.Ident {
9 . . . NamePos: -
10 . . . Name: "App"
11 . . . Obj: nil
12 . . }
13 . }
14 }
`: App returns the global application instance.
- `MustServiceFor(c 0 *ast.StarExpr {
1 . Star: -
2 . X: *ast.Ident {
3 . . NamePos: -
4 . . Name: "Core"
5 . . Obj: nil
6 . }
7 }
, name 0 *ast.Ident {
1 . NamePos: -
2 . Name: "string"
3 . Obj: nil
4 }
) 0 *ast.Ident {
1 . NamePos: -
2 . Name: "T"
3 . Obj: *ast.Object {
4 . . Kind: type
5 . . Name: "T"
6 . . Decl: *ast.Field {
7 . . . Doc: nil
8 . . . Names: []*ast.Ident (len = 1) {
9 . . . . 0: *ast.Ident {
10 . . . . . NamePos: -
11 . . . . . Name: "T"
12 . . . . . Obj: *(obj @ 3)
13 . . . . }
14 . . . }
15 . . . Type: *ast.Ident {
16 . . . . NamePos: -
17 . . . . Name: "any"
18 . . . . Obj: nil
19 . . . }
20 . . . Tag: nil
21 . . . Comment: nil
22 . . }
23 . . Data: nil
24 . . Type: nil
25 . }
26 }
`: MustServiceFor retrieves a registered service by name and asserts its type to the given interface T. It panics if the service is not found or cannot be cast to T.
- `ServiceFor(c 0 *ast.StarExpr {
1 . Star: -
2 . X: *ast.Ident {
3 . . NamePos: -
4 . . Name: "Core"
5 . . Obj: nil
6 . }
7 }
, name 0 *ast.Ident {
1 . NamePos: -
2 . Name: "string"
3 . Obj: nil
4 }
) 0 *ast.Ident {
1 . NamePos: -
2 . Name: "T"
3 . Obj: *ast.Object {
4 . . Kind: type
5 . . Name: "T"
6 . . Decl: *ast.Field {
7 . . . Doc: nil
8 . . . Names: []*ast.Ident (len = 1) {
9 . . . . 0: *ast.Ident {
10 . . . . . NamePos: -
11 . . . . . Name: "T"
12 . . . . . Obj: *(obj @ 3)
13 . . . . }
14 . . . }
15 . . . Type: *ast.Ident {
16 . . . . NamePos: -
17 . . . . Name: "any"
18 . . . . Obj: nil
19 . . . }
20 . . . Tag: nil
21 . . . Comment: nil
22 . . }
23 . . Data: nil
24 . . Type: nil
25 . }
26 }
, 0 *ast.Ident {
1 . NamePos: -
2 . Name: "error"
3 . Obj: nil
4 }
`: ServiceFor retrieves a registered service by name and asserts its type to the given interface T.