1
0
Fork 0
mirror of https://git.sr.ht/~rjarry/aerc synced 2025-07-12 03:00:21 +02:00
aerc/lib/notmuch/errors.go
Tim Culverhouse 3a55b8e6fd notmuch: add notmuch bindings
aerc is using an unmaintained fork of a not-well-functioning notmuch
binding library. Add custom bindings directly into the aerc repo to make
them more maintainable and more customizable to our needs.

Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
2023-08-30 22:10:20 +02:00

55 lines
2.4 KiB
Go

//go:build notmuch
// +build notmuch
package notmuch
/*
#cgo LDFLAGS: -lnotmuch
#include <notmuch.h>
*/
import "C"
// Status codes used for the return values of most functions
type Status int
const (
STATUS_SUCCESS Status = C.NOTMUCH_STATUS_SUCCESS
STATUS_OUT_OF_MEMORY Status = C.NOTMUCH_STATUS_OUT_OF_MEMORY
STATUS_READ_ONLY_DATABASE Status = C.NOTMUCH_STATUS_READ_ONLY_DATABASE
STATUS_XAPIAN_EXCEPTION Status = C.NOTMUCH_STATUS_XAPIAN_EXCEPTION
STATUS_FILE_ERROR Status = C.NOTMUCH_STATUS_FILE_ERROR
STATUS_FILE_NOT_EMAIL Status = C.NOTMUCH_STATUS_FILE_NOT_EMAIL
STATUS_DUPLICATE_MESSAGE_ID Status = C.NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID
STATUS_NULL_POINTER Status = C.NOTMUCH_STATUS_NULL_POINTER
STATUS_TAG_TOO_LONG Status = C.NOTMUCH_STATUS_TAG_TOO_LONG
STATUS_UNBALANCED_FREEZE_THAW Status = C.NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW
STATUS_UNBALANCED_ATOMIC Status = C.NOTMUCH_STATUS_UNBALANCED_ATOMIC
STATUS_UNSUPPORTED_OPERATION Status = C.NOTMUCH_STATUS_UNSUPPORTED_OPERATION
STATUS_UPGRADE_REQUIRED Status = C.NOTMUCH_STATUS_UPGRADE_REQUIRED
STATUS_PATH_ERROR Status = C.NOTMUCH_STATUS_PATH_ERROR
STATUS_IGNORED Status = C.NOTMUCH_STATUS_IGNORED
STATUS_ILLEGAL_ARGUMENT Status = C.NOTMUCH_STATUS_ILLEGAL_ARGUMENT
STATUS_MALFORMED_CRYPTO_PROTOCOL Status = C.NOTMUCH_STATUS_MALFORMED_CRYPTO_PROTOCOL
STATUS_FAILED_CRYPTO_CONTEXT_CREATION Status = C.NOTMUCH_STATUS_FAILED_CRYPTO_CONTEXT_CREATION
STATUS_UNKNOWN_CRYPTO_PROTOCOL Status = C.NOTMUCH_STATUS_UNKNOWN_CRYPTO_PROTOCOL
STATUS_NO_CONFIG Status = C.NOTMUCH_STATUS_NO_CONFIG
STATUS_NO_DATABASE Status = C.NOTMUCH_STATUS_NO_DATABASE
STATUS_DATABASE_EXISTS Status = C.NOTMUCH_STATUS_DATABASE_EXISTS
STATUS_BAD_QUERY_SYNTAX Status = C.NOTMUCH_STATUS_BAD_QUERY_SYNTAX
STATUS_NO_MAIL_ROOT Status = C.NOTMUCH_STATUS_NO_MAIL_ROOT
STATUS_CLOSED_DATABASE Status = C.NOTMUCH_STATUS_CLOSED_DATABASE
)
func (s Status) Error() string {
status := C.notmuch_status_to_string(C.notmuch_status_t(s))
return C.GoString(status)
}
func errorWrap(st C.notmuch_status_t) error {
if Status(st) == STATUS_SUCCESS {
return nil
}
return Status(st)
}