diff options
Diffstat (limited to 'src/git.h')
-rw-r--r-- | src/git.h | 100 |
1 files changed, 49 insertions, 51 deletions
@@ -5,68 +5,66 @@ #include <git2.h> #include <ostream> -namespace GitFS { - namespace Git { - template<typename E> - [[noreturn]] void throwError(int err); - - template<typename E, typename ... P, typename ... A> - void - gitSafe(int (*func)(P...), A ... p) - { - if (int _giterror = func(p...)) { - throwError<E>(_giterror); - } +namespace GitFS::Git { + template<typename E> + [[noreturn]] void throwError(int err); + + template<typename E, typename ... P, typename ... A> + void + gitSafe(int (*func)(P...), A ... p) + { + if (int _giterror = func(p...)) { + throwError<E>(_giterror); } + } - template<typename T> - using TPtr = std::shared_ptr<T>; + template<typename T> + using TPtr = std::shared_ptr<T>; - template<typename E, typename R, typename ... P, typename ... A> - auto - gitSafeGet(int(*get)(R**, P...), void(*release)(R*), A ... p) - { - R * r = nullptr; - gitSafe<E>(get, &r, p...); - return TPtr<R>(r, release); - } + template<typename E, typename R, typename ... P, typename ... A> + auto + gitSafeGet(int(*get)(R**, P...), void(*release)(R*), A ... p) + { + R * r = nullptr; + gitSafe<E>(get, &r, p...); + return TPtr<R>(r, release); + } - template<typename E, typename R, typename ... P, typename ... A> - auto - gitSafeGet(int(*get)(R**, P...), A ... p) - { - R * r = nullptr; - gitSafe<E>(get, &r, p...); - return r; - } + template<typename E, typename R, typename ... P, typename ... A> + auto + gitSafeGet(int(*get)(R**, P...), A ... p) + { + R * r = nullptr; + gitSafe<E>(get, &r, p...); + return r; + } - git_oid OidParse(const std::string_view & str); + git_oid OidParse(const std::string_view & str); - using RepositoryPtr = decltype(gitSafeGet<std::exception>( - git_repository_open_bare, git_repository_free, nullptr)); - RepositoryPtr RepositoryOpenBare(const std::string & path); + using RepositoryPtr = decltype(gitSafeGet<std::exception>( + git_repository_open_bare, git_repository_free, nullptr)); + RepositoryPtr RepositoryOpenBare(const std::string & path); - using BlobPtr = decltype(gitSafeGet<std::exception>( - git_blob_lookup, git_blob_free, nullptr, nullptr)); - BlobPtr BlobLookup(const RepositoryPtr & repo, const git_oid & blob); + using BlobPtr = decltype(gitSafeGet<std::exception>( + git_blob_lookup, git_blob_free, nullptr, nullptr)); + BlobPtr BlobLookup(const RepositoryPtr & repo, const git_oid & blob); - using CommitPtr = decltype(gitSafeGet<std::exception>( - git_commit_lookup, git_commit_free, nullptr, nullptr)); - CommitPtr CommitLookup(const RepositoryPtr & repo, const git_oid & commitId); + using CommitPtr = decltype(gitSafeGet<std::exception>( + git_commit_lookup, git_commit_free, nullptr, nullptr)); + CommitPtr CommitLookup(const RepositoryPtr & repo, const git_oid & commitId); - using TreePtr = decltype(gitSafeGet<std::exception>( - git_tree_lookup, git_tree_free, nullptr, nullptr)); - TreePtr TreeLookup(const RepositoryPtr & repo, const git_oid & treeId); + using TreePtr = decltype(gitSafeGet<std::exception>( + git_tree_lookup, git_tree_free, nullptr, nullptr)); + TreePtr TreeLookup(const RepositoryPtr & repo, const git_oid & treeId); - using TreeEntryPtr = decltype(gitSafeGet<std::exception>( - git_tree_entry_bypath, git_tree_entry_free, nullptr, nullptr)); - TreeEntryPtr TreeEntryByPath(const TreePtr & tree, const std::string & path); + using TreeEntryPtr = decltype(gitSafeGet<std::exception>( + git_tree_entry_bypath, git_tree_entry_free, nullptr, nullptr)); + TreeEntryPtr TreeEntryByPath(const TreePtr & tree, const std::string & path); - using RefPtr = decltype(gitSafeGet<std::exception>( - git_reference_dwim, git_reference_free, nullptr, nullptr)); - RefPtr Commitish(const RepositoryPtr & repo, const std::string & name); - RefPtr Resolve(const RefPtr &); - } + using RefPtr = decltype(gitSafeGet<std::exception>( + git_reference_dwim, git_reference_free, nullptr, nullptr)); + RefPtr Commitish(const RepositoryPtr & repo, const std::string & name); + RefPtr Resolve(const RefPtr &); } namespace NetFS { |