aboutsummaryrefslogtreecommitdiff
path: root/forged/internal/misc
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-04-06 09:58:02 +0800
committerRunxi Yu <me@runxiyu.org>2025-04-06 09:58:02 +0800
commit6f5e22e764283262ae8c6519bb030766db0fd35b (patch)
treec56038bd7b5dc31d5bae5dd6e323688725c5262e /forged/internal/misc
parentFix load ordering issue that causes the forge title to disappear (diff)
downloadforge-6f5e22e764283262ae8c6519bb030766db0fd35b.tar.gz
forge-6f5e22e764283262ae8c6519bb030766db0fd35b.tar.zst
forge-6f5e22e764283262ae8c6519bb030766db0fd35b.zip
Add more documentation comments
Diffstat (limited to 'forged/internal/misc')
-rw-r--r--forged/internal/misc/back.go2
-rw-r--r--forged/internal/misc/deploy.go2
-rw-r--r--forged/internal/misc/panic.go2
-rw-r--r--forged/internal/misc/url.go1
4 files changed, 7 insertions, 0 deletions
diff --git a/forged/internal/misc/back.go b/forged/internal/misc/back.go
index ef4ed22..5351359 100644
--- a/forged/internal/misc/back.go
+++ b/forged/internal/misc/back.go
@@ -3,6 +3,8 @@
package misc
+// ErrorBack wraps a value and a channel for communicating an associated error.
+// Typically used to get an error response after sending data across a channel.
type ErrorBack[T any] struct {
Content T
ErrorChan chan error
diff --git a/forged/internal/misc/deploy.go b/forged/internal/misc/deploy.go
index 0f24f49..3ee5f92 100644
--- a/forged/internal/misc/deploy.go
+++ b/forged/internal/misc/deploy.go
@@ -9,6 +9,8 @@ import (
"os"
)
+// DeployBinary copies the contents of a binary file to the target destination path.
+// The destination file is created with executable permissions.
func DeployBinary(src fs.File, dst string) (err error) {
var dstFile *os.File
if dstFile, err = os.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o755); err != nil {
diff --git a/forged/internal/misc/panic.go b/forged/internal/misc/panic.go
index 94cd47a..34c49c5 100644
--- a/forged/internal/misc/panic.go
+++ b/forged/internal/misc/panic.go
@@ -3,6 +3,7 @@
package misc
+// FirstOrPanic returns the value or panics if the error is non-nil.
func FirstOrPanic[T any](v T, err error) T {
if err != nil {
panic(err)
@@ -10,6 +11,7 @@ func FirstOrPanic[T any](v T, err error) T {
return v
}
+// NoneOrPanic panics if the provided error is non-nil.
func NoneOrPanic(err error) {
if err != nil {
panic(err)
diff --git a/forged/internal/misc/url.go b/forged/internal/misc/url.go
index b77d8ce..0f9dc04 100644
--- a/forged/internal/misc/url.go
+++ b/forged/internal/misc/url.go
@@ -60,6 +60,7 @@ func ParseReqURI(requestURI string) (segments []string, params url.Values, err e
return
}
+// PathToSegments splits a path into unescaped segments. It handles %2F correctly.
func PathToSegments(path string) (segments []string, err error) {
segments = strings.Split(strings.TrimPrefix(path, "/"), "/")