/
Blob.pm6
32 lines (22 loc) · 820 Bytes
/
Blob.pm6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use NativeCall;
use Git::Error;
use Git::Oid;
use Git::Object;
class Git::Blob is repr('CPointer') does Git::Objectish
{
method id(--> Git::Oid)
is native('git2') is symbol('git_blob_id') {}
method owner-ptr(--> Pointer)
is native('git2') is symbol('git_blob_owner') {}
method owner { nativecast(::('Git::Repository'), $.owner-ptr) }
method rawcontent(--> CArray[uint8])
is native('git2') is symbol('git_blob_rawcontent') {}
method rawsize(--> int64)
is native('git2') is symbol('git_blob_rawsize') {}
sub git_blob_is_binary(Git::Blob --> int32)
is native('git2') {}
method is-binary { git_blob_is_binary(self) == 1 }
method Buf { buf8.new($.rawcontent[^$.rawsize]) }
method Str { $.Buf.decode }
submethod DESTROY { self.free }
}