git2wrapC++20 wrapper for libgit2 |
git clone git://git.dimitrijedobrota.com/git2wrap.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING |
object.cpp (983B)
0 #include "git2wrap/object.hpp"
2 #include "git2wrap/error.hpp"
4 namespace git2wrap
5 {
7 object::object(git_object* obj, repositoryPtr repo)
8 : m_obj(obj, git_object_free)
9 , m_repo(std::move(repo))
10 {
11 }
13 object object::dup() const
14 {
15 git_object* obj = nullptr;
16 git_object_dup(&obj, m_obj.get());
17 return {obj, m_repo};
18 }
20 oid object::get_id() const
21 {
22 return oid(git_object_id(m_obj.get()));
23 }
25 buf object::get_id_short() const
26 {
27 buf bufr;
29 if (git_object_short_id(bufr.get(), m_obj.get()) != 0) {
30 throw error<error_code_t::error>();
31 }
33 return bufr;
34 }
36 object::object_t object::get_type() const
37 {
38 return object_t::get(git_object_type(m_obj.get()));
39 }
41 repositoryPtr object::get_owner() const
42 {
43 return m_repo;
44 }
46 const char* object::type2string(object_t type)
47 {
48 return git_object_type2string(git_object_t(type.value));
49 }
51 object::object_t object::string2type(const char* str)
52 {
53 return object_t::get(git_object_string2type(str));
54 }
56 } // namespace git2wrap