git2wrapC++20 wrapper for libgit2 |
git clone git://git.dimitrijedobrota.com/git2wrap.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
commit | a6949e2ec607626dadfb1a7711a419321e57e76d |
parent | 09cdcdc2204d679e304b7416dd178d0736fa8016 |
author | Dimitrije Dobrota < mail@dimitrijedobrota.com > |
date | Thu, 22 May 2025 10:29:29 +0200 |
Fix enum inconsistencies
M | .clang-tidy | | | +++ |
M | CMakeLists.txt | | | + - |
M | include/git2wrap/branch.hpp | | | +++++ --- |
M | include/git2wrap/diff.hpp | | | ++++++ --- |
M | include/git2wrap/object.hpp | | | + - |
M | include/git2wrap/repository.hpp | | | +++++++++ --------------- |
M | source/repository.cpp | | | +++ -- |
M | vcpkg.json | | | + - |
8 files changed, 29 insertions(+), 26 deletions(-)
diff --git a/ .clang-tidy b/ .clang-tidy
@@ -15,9 +15,12 @@
Checks: "*,\
-misc-include-cleaner,\
-misc-non-private-member-variables-in-classes,\
-misc-no-recursion,\
-modernize-use-designated-initializers,\
-modernize-use-trailing-return-type,\
-readability-suspicious-call-argument,\
-*-ranges,\
-cppcoreguidelines-missing-std-forward,\
-cppcoreguidelines-rvalue-reference-param-not-moved,\
"
WarningsAsErrors: ''
CheckOptions:
diff --git a/ CMakeLists.txt b/ CMakeLists.txt
@@ -16,7 +16,7 @@
include(cmake/variables.cmake)
# ---- Declare dependencies ----
find_package(libgit2 1.9 CONFIG REQUIRED)
find_package(based 0.1.2 CONFIG REQUIRED)
find_package(based 0.2.0 CONFIG REQUIRED)
# ---- Declare library ----
diff --git a/ include/git2wrap/branch.hpp b/ include/git2wrap/branch.hpp
@@ -1,6 +1,6 @@
#pragma once
#include <based/enum/enum_flag.hpp>
#include <based/enum/enum.hpp>
#include <based/types/types.hpp>
#include <git2.h>
@@ -11,6 +11,8 @@
namespace git2wrap
{
#define ENUM_LIST local, remote, all
class GIT2WRAP_EXPORT branch
{
public:
@@ -19,7 +21,7 @@
public:
);
branch(reference ref, git_branch_t type);
BASED_DECLARE_ENUM_FLAG(flags_list, based::u8, local, remote, all)
BASED_DECLARE_ENUM(flags_list, based::bu8, 1, ENUM_LIST)
operator bool() const { return m_ref; } // NOLINT
[[nodiscard]] branch dup() const;
@@ -35,7 +37,7 @@
private:
std::string m_name;
};
BASED_DEFINE_ENUM_FLAG_CLASS(branch, flags_list, based::u8, local, remote, all)
BASED_DEFINE_ENUM_CLASS(branch, flags_list, based::bu8, 1, ENUM_LIST)
class branch_iterator
{
diff --git a/ include/git2wrap/diff.hpp b/ include/git2wrap/diff.hpp
@@ -50,7 +50,7 @@
public:
BASED_DECLARE_ENUM_FLAG(
flag,
based::u32,
based::bu32,
normal,
reverse,
include_ignored,
@@ -85,7 +85,10 @@
public:
show_binary
)
auto flags() { return based::enum_flag_wrapper<flag::type>(m_options.flags); }
auto flags()
{
return based::enum_flag_wrapper<flag::enum_type>(m_options.flags);
}
private:
git_diff_options m_options = {};
@@ -94,7 +97,7 @@
private:
BASED_DEFINE_ENUM_FLAG_CLASS(
diff_options,
flag,
based::u32,
based::bu32,
normal,
reverse,
include_ignored,
diff --git a/ include/git2wrap/object.hpp b/ include/git2wrap/object.hpp
@@ -24,7 +24,7 @@
public:
object_type, int, -2, any, invalid, commit, unused, tree, blob, tag
)
using object_t = object_type::type;
using object_t = object_type::enum_type;
[[nodiscard]] oid get_id() const;
[[nodiscard]] buf get_id_short() const;
diff --git a/ include/git2wrap/repository.hpp b/ include/git2wrap/repository.hpp
@@ -16,15 +16,15 @@
namespace git2wrap
{
#define ENUM_OPEN empty, no_search, cross_fs, bare, no_dotgit, from_env
class GIT2WRAP_EXPORT repository
{
public:
using init_options = git_repository_init_options;
using clone_options = git_clone_options;
BASED_DECLARE_ENUM_FLAG(
flags_open, based::u8, no_search, cross_fs, bare, no_dotgit, from_env
)
BASED_DECLARE_ENUM_FLAG(flags_open, based::bu8, ENUM_OPEN)
explicit repository(git_repository* repo);
explicit repository(repositoryPtr repo);
@@ -41,7 +41,7 @@
public:
static repository open(const char* path);
static repository open(
const char* path, flags_open::type flags, const char* ceiling_dirs
const char* path, flags_open::enum_type flags, const char* ceiling_dirs
);
object revparse(const char* spec) const;
@@ -49,7 +49,8 @@
public:
[[nodiscard]] blob blob_lookup(const oid& objid) const;
[[nodiscard]] tag tag_lookup(const oid& objid) const;
[[nodiscard]] branch_iterator branch_begin(branch::flags_list::type flags) const;
[[nodiscard]] branch_iterator branch_begin(branch::flags_list::enum_type flags
) const;
[[nodiscard]] branch_iterator branch_end() const;
void tag_foreach(tag_foreach_cb callback, void* payload) const;
@@ -58,15 +59,8 @@
private:
repositoryPtr m_repo;
};
BASED_DEFINE_ENUM_FLAG_CLASS(
repository,
flags_open,
based::u8,
no_search,
cross_fs,
bare,
no_dotgit,
from_env
)
BASED_DEFINE_ENUM_FLAG_CLASS(repository, flags_open, based::bu8, ENUM_OPEN)
#undef ENUM_OPEN
} // namespace git2wrap
diff --git a/ source/repository.cpp b/ source/repository.cpp
@@ -64,7 +64,7 @@
repository repository::open(const char* path)
}
repository repository::open(
const char* path, flags_open::type flags, const char* ceiling_dirs
const char* path, flags_open::enum_type flags, const char* ceiling_dirs
)
{
git_repository* repo = nullptr;
@@ -146,7 +146,8 @@
branch_iterator repository::branch_end() const // NOLINT
return branch_iterator();
}
branch_iterator repository::branch_begin(branch::flags_list::type flags) const
branch_iterator repository::branch_begin(branch::flags_list::enum_type flags
) const
{
git_branch_iterator* iter = nullptr;
diff --git a/ vcpkg.json b/ vcpkg.json
@@ -8,7 +8,7 @@
},
{
"name": "based",
"version>=": "0.1.2"
"version>=": "0.2.0"
}
],
"default-features": [],