Git fork
1/*
2 * Copyright 2020 Google LLC
3 *
4 * Use of this source code is governed by a BSD-style
5 * license that can be found in the LICENSE file or at
6 * https://developers.google.com/open-source/licenses/bsd
7 */
8
9#ifndef REFTABLE_ERROR_H
10#define REFTABLE_ERROR_H
11
12/*
13 * Errors in reftable calls are signaled with negative integer return values. 0
14 * means success.
15 */
16enum reftable_error {
17 /* Unexpected file system behavior */
18 REFTABLE_IO_ERROR = -2,
19
20 /* Format inconsistency on reading data */
21 REFTABLE_FORMAT_ERROR = -3,
22
23 /* File does not exist. Returned from block_source_from_file(), because
24 * it needs special handling in stack.
25 */
26 REFTABLE_NOT_EXIST_ERROR = -4,
27
28 /* Trying to access locked data. */
29 REFTABLE_LOCK_ERROR = -5,
30
31 /* Misuse of the API:
32 * - on writing a record with NULL refname.
33 * - on writing a record before setting the writer limits.
34 * - on writing a reftable_ref_record outside the table limits
35 * - on writing a ref or log record before the stack's
36 * next_update_inde*x
37 * - on writing a log record with multiline message with
38 * exact_log_message unset
39 * - on reading a reftable_ref_record from log iterator, or vice versa.
40 *
41 * When a call misuses the API, the internal state of the library is
42 * kept unchanged.
43 */
44 REFTABLE_API_ERROR = -6,
45
46 /* Decompression error */
47 REFTABLE_ZLIB_ERROR = -7,
48
49 /* Wrote a table without blocks. */
50 REFTABLE_EMPTY_TABLE_ERROR = -8,
51
52 /* Invalid ref name. */
53 REFTABLE_REFNAME_ERROR = -10,
54
55 /* Entry does not fit. This can happen when writing outsize reflog
56 messages. */
57 REFTABLE_ENTRY_TOO_BIG_ERROR = -11,
58
59 /* Trying to write out-of-date data. */
60 REFTABLE_OUTDATED_ERROR = -12,
61
62 /* An allocation has failed due to an out-of-memory situation. */
63 REFTABLE_OUT_OF_MEMORY_ERROR = -13,
64};
65
66/* convert the numeric error code to a string. The string should not be
67 * deallocated. */
68const char *reftable_error_str(int err);
69
70#endif