mirror of
https://github.com/SkinnyMind/libgit2dart.git
synced 2025-05-04 20:29:08 -04:00
34 lines
944 B
Dart
34 lines
944 B
Dart
import 'dart:ffi';
|
|
import 'package:libgit2dart/src/repository.dart';
|
|
|
|
import 'bindings/libgit2_bindings.dart';
|
|
import 'bindings/tree.dart' as bindings;
|
|
import 'oid.dart';
|
|
import 'util.dart';
|
|
|
|
class Tree {
|
|
/// Initializes a new instance of [Tree] class from provided
|
|
/// pointer to tree object in memory.
|
|
Tree(this._treePointer) {
|
|
libgit2.git_libgit2_init();
|
|
}
|
|
|
|
/// Initializes a new instance of [Tree] class from provided
|
|
/// [Repository] and [Oid] objects.
|
|
///
|
|
/// Should be freed with `free()` to release allocated memory.
|
|
Tree.lookup(Repository repo, Oid id) {
|
|
libgit2.git_libgit2_init();
|
|
_treePointer = bindings.lookup(repo.pointer, id.pointer);
|
|
}
|
|
|
|
late final Pointer<git_tree> _treePointer;
|
|
|
|
/// Pointer to memory address for allocated tree object.
|
|
Pointer<git_tree> get pointer => _treePointer;
|
|
|
|
/// Releases memory allocated for tree object.
|
|
void free() {
|
|
bindings.free(_treePointer);
|
|
}
|
|
}
|