internal unsafe static Signature FromNative(git_signature *nativeSignature) { return(new Signature() { Name = Utf8Converter.FromNative(nativeSignature->name), Email = Utf8Converter.FromNative(nativeSignature->email), When = DateTimeOffset.FromUnixTimeSeconds(nativeSignature->when.time).ToOffset(TimeSpan.FromMinutes(nativeSignature->when.offset)) }); }
private unsafe Commit(git_commit *nativeCommit, ObjectId id) : base((git_object *)nativeCommit, id) { author = new LazyNative <Signature>(() => { git_signature *author = libgit2.git_commit_author(NativeCommit); return(Signature.FromNative(author)); }, this); committer = new LazyNative <Signature>(() => { git_signature *signature = libgit2.git_commit_committer(NativeCommit); return(Signature.FromNative(signature)); }, this); treeId = new LazyNative <ObjectId>(() => { git_oid *oid = libgit2.git_commit_tree_id(NativeCommit); Ensure.NativePointerNotNull(oid); return(ObjectId.FromNative(*oid)); }, this); }
internal unsafe Signature(git_signature *sig) { name = LaxUtf8Marshaler.FromNative(sig->name); email = LaxUtf8Marshaler.FromNative(sig->email); when = DateTimeOffset.FromUnixTimeSeconds(sig->when.time).ToOffset(TimeSpan.FromMinutes(sig->when.offset)); }
internal SignatureHandle(git_signature *ptr, bool owned) : base((void *)ptr, owned) { }
internal unsafe Signature(git_signature *sig) { name = LaxUtf8Marshaler.FromNative(sig->name); email = LaxUtf8Marshaler.FromNative(sig->email); when = Epoch.ToDateTimeOffset(sig->when.time, sig->when.offset); }