usage: report vsnprintf(3) failure
[git.git] / reftable / reftable-error.h
blob4c457aaaf8906384e65edfeb06057a86dcb594e4
1 /*
2 Copyright 2020 Google LLC
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 */
9 #ifndef REFTABLE_ERROR_H
10 #define REFTABLE_ERROR_H
13 * Errors in reftable calls are signaled with negative integer return values. 0
14 * means success.
16 enum reftable_error {
17 /* Unexpected file system behavior */
18 REFTABLE_IO_ERROR = -2,
20 /* Format inconsistency on reading data */
21 REFTABLE_FORMAT_ERROR = -3,
23 /* File does not exist. Returned from block_source_from_file(), because
24 * it needs special handling in stack.
26 REFTABLE_NOT_EXIST_ERROR = -4,
28 /* Trying to write out-of-date data. */
29 REFTABLE_LOCK_ERROR = -5,
31 /* Misuse of the API:
32 * - on writing a record with NULL refname.
33 * - on writing a reftable_ref_record outside the table limits
34 * - on writing a ref or log record before the stack's
35 * next_update_inde*x
36 * - on writing a log record with multiline message with
37 * exact_log_message unset
38 * - on reading a reftable_ref_record from log iterator, or vice versa.
40 * When a call misuses the API, the internal state of the library is
41 * kept unchanged.
43 REFTABLE_API_ERROR = -6,
45 /* Decompression error */
46 REFTABLE_ZLIB_ERROR = -7,
48 /* Wrote a table without blocks. */
49 REFTABLE_EMPTY_TABLE_ERROR = -8,
51 /* Dir/file conflict. */
52 REFTABLE_NAME_CONFLICT = -9,
54 /* Invalid ref name. */
55 REFTABLE_REFNAME_ERROR = -10,
57 /* Entry does not fit. This can happen when writing outsize reflog
58 messages. */
59 REFTABLE_ENTRY_TOO_BIG_ERROR = -11,
62 /* convert the numeric error code to a string. The string should not be
63 * deallocated. */
64 const char *reftable_error_str(int err);
66 #endif