diff options
author | Runxi Yu <me@runxiyu.org> | 2025-05-02 10:46:11 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-05-02 10:46:11 +0800 |
commit | 9ddff5ced5151938a0c6c7933bac8d9fdad315c3 (patch) | |
tree | 1c86c050963b5cc13265a20559b50d7bee8ed466 /forged | |
parent | Bump dependencies (diff) | |
download | forge-master.tar.gz forge-master.tar.zst forge-master.zip |
Diffstat (limited to 'forged')
-rw-r--r-- | forged/internal/git2c/perror.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/forged/internal/git2c/perror.go b/forged/internal/git2c/perror.go new file mode 100644 index 0000000..96bffd5 --- /dev/null +++ b/forged/internal/git2c/perror.go @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu <https://runxiyu.org> + +// TODO: Make the C part report detailed error messages too + +package git2c + +import "errors" + +var ( + Success error + ErrUnknown = errors.New("git2c: unknown error") + ErrPath = errors.New("git2c: get tree entry by path failed") + ErrRevparse = errors.New("git2c: revparse failed") + ErrReadme = errors.New("git2c: no readme") + ErrBlobExpected = errors.New("git2c: blob expected") + ErrEntryToObject = errors.New("git2c: tree entry to object conversion failed") + ErrBlobRawContent = errors.New("git2c: get blob raw content failed") + ErrRevwalk = errors.New("git2c: revwalk failed") + ErrRevwalkPushHead = errors.New("git2c: revwalk push head failed") + ErrBareProto = errors.New("git2c: bare protocol error") +) + +func Perror(errno uint) error { + switch errno { + case 0: + return Success + case 3: + return ErrPath + case 4: + return ErrRevparse + case 5: + return ErrReadme + case 6: + return ErrBlobExpected + case 7: + return ErrEntryToObject + case 8: + return ErrBlobRawContent + case 9: + return ErrRevwalk + case 10: + return ErrRevwalkPushHead + case 11: + return ErrBareProto + } + return ErrUnknown +} |