import times import nimgit2 type GitRepository* = ptr git_repository GitConfig* = ptr git_config GitConfigEntry* = ptr git_config_entry GitObject* = ptr git_object GitObjectId* = ptr git_oid GitCommit* = ptr git_commit GitTree* = ptr git_tree GitTreeEntry* = ptr git_tree_entry GitReference* = ptr git_reference GitRevisionWalker* = ptr git_revwalk GitBranchIterator* = ptr git_branch_iterator GitBuffer* = ptr git_buf GitTag* = ptr git_tag GitBlob* = ptr git_blob GitDiff* = ptr git_diff GitDiffOptions* = ptr git_diff_options GitDiffFindOptions* = ptr git_diff_find_options GitDiffDelta* = ptr git_diff_delta GitPatch* = ptr git_patch GitDiffHunk* = ptr git_diff_hunk GitDiffLine* = ptr git_diff_line GitDiffStats* = object filesChanged* : int insertions* : int deletions* : int GitObjectKind* = enum # we have to add 2 here to satisfy nim; discriminants.low must be zero goAny = (2 + GIT_OBJECT_ANY, "object") # -2 goInvalid = (2 + GIT_OBJECT_INVALID, "invalid") # -1 # this space intentionally left blank goCommit = (2 + GIT_OBJECT_COMMIT, "commit") # 1 goTree = (2 + GIT_OBJECT_TREE, "tree") # 2 goBlob = (2 + GIT_OBJECT_BLOB, "blob") # 3 goTag = (2 + GIT_OBJECT_TAG, "tag") # 4 # this space intentionally left blank goOfsDelta = (2 + GIT_OBJECT_OFS_DELTA, "ofs") # 6 goRefDelta = (2 + GIT_OBJECT_REF_DELTA, "ref") # 7 GitTime* = object time* : Time offset* : int GitSignature* = object name* : string email* : string `when`* : GitTime GitReferenceType* = enum referenceDirect = (GIT_REFERENCE_DIRECT, "direct") referenceSymbolic = (GIT_REFERENCE_SYMBOLIC, "symbolic") GitBranchType* = enum branchLocal = (GIT_BRANCH_LOCAL, "local") branchRemote = (GIT_BRANCH_REMOTE, "remote") branchAll = (GIT_BRANCH_ALL, "all") GitReturnCode* = enum grcApplyFail = (GIT_EAPPLYFAIL, "patch failed") grcIndexDirty = (GIT_EINDEXDIRTY, "dirty index") grcMismatch = (GIT_EMISMATCH, "hash mismatch") grcRetry = (GIT_RETRY, "retry") grcIterOver = (GIT_ITEROVER, "end of iteration") grcPassThrough = (GIT_PASSTHROUGH, "pass-through") grcMergeConflict = (GIT_EMERGE_CONFLICT, "merge conflict") grcDirectory = (GIT_EDIRECTORY, "directory") grcUncommitted = (GIT_EUNCOMMITTED, "uncommitted") grcInvalid = (GIT_EINVALID, "invalid") grcEndOfFile = (GIT_EEOF, "end-of-file") grcPeel = (GIT_EPEEL, "peel") grcApplied = (GIT_EAPPLIED, "applied") grcCertificate = (GIT_ECERTIFICATE, "certificate") grcAuthentication = (GIT_EAUTH, "authentication") grcModified = (GIT_EMODIFIED, "modified") grcLocked = (GIT_ELOCKED, "locked") grcConflict = (GIT_ECONFLICT, "conflict") grcInvalidSpec = (GIT_EINVALIDSPEC, "invalid spec") grcNonFastForward = (GIT_ENONFASTFORWARD, "not fast-forward") grcUnmerged = (GIT_EUNMERGED, "unmerged") grcUnbornBranch = (GIT_EUNBORNBRANCH, "unborn branch") grcBareRepo = (GIT_EBAREREPO, "bare repository") grcUser = (GIT_EUSER, "user-specified") grcBuffer = (GIT_EBUFS, "buffer overflow") grcAmbiguous = (GIT_EAMBIGUOUS, "ambiguous match") grcExists = (GIT_EEXISTS, "object exists") grcNotFound = (GIT_ENOTFOUND, "not found") grcError = (GIT_ERROR, "generic error") grcOk = (GIT_OK, "ok") GitErrorClass* = enum gecNone = (GIT_ERROR_NONE, "none") gecNoMemory = (GIT_ERROR_NOMEMORY, "no memory") gecOS = (GIT_ERROR_OS, "os") gecInvalid = (GIT_ERROR_INVALID, "invalid") gecReference = (GIT_ERROR_REFERENCE, "reference") gecZlib = (GIT_ERROR_ZLIB, "zlib") gecRepository = (GIT_ERROR_REPOSITORY, "repository") gecConfig = (GIT_ERROR_CONFIG, "config") gecRegEx = (GIT_ERROR_REGEX, "regex") gecODB = (GIT_ERROR_ODB, "odb") gecIndex = (GIT_ERROR_INDEX, "index") gecObject = (GIT_ERROR_OBJECT, "object") gecNet = (GIT_ERROR_NET, "network") gecTag = (GIT_ERROR_TAG, "tag") gecTree = (GIT_ERROR_TREE, "tree") gecIndexer = (GIT_ERROR_INDEXER, "indexer") gecSSL = (GIT_ERROR_SSL, "ssl") gecSubModule = (GIT_ERROR_SUBMODULE, "submodule") gecThread = (GIT_ERROR_THREAD, "thread") gecStash = (GIT_ERROR_STASH, "stash") gecCheckOut = (GIT_ERROR_CHECKOUT, "check out") gecFetchHead = (GIT_ERROR_FETCHHEAD, "fetch head") gecMerge = (GIT_ERROR_MERGE, "merge") gecSSH = (GIT_ERROR_SSH, "ssh") gecFilter = (GIT_ERROR_FILTER, "filter") gecRevert = (GIT_ERROR_REVERT, "revert") gecCallBack = (GIT_ERROR_CALLBACK, "call back") gecCherryPick = (GIT_ERROR_CHERRYPICK, "cherry pick") gecDescribe = (GIT_ERROR_DESCRIBE, "describe") gecReBase = (GIT_ERROR_REBASE, "re-base") gecFileSystem = (GIT_ERROR_FILESYSTEM, "filesystem") gecPatch = (GIT_ERROR_PATCH, "patch") gecWorkTree = (GIT_ERROR_WORKTREE, "work tree") gecSHA1 = (GIT_ERROR_SHA1, "sha1") GitErrorObj* = object message* : string class* : GitErrorClass template getResultCode* (code: cint): GitReturnCode = cast[GitReturnCode](code.ord) template getErrorClass* (code: cint): GitErrorClass = cast[GitErrorClass](code.ord)