1
1
use std:: convert:: TryFrom ;
2
2
3
- use crate :: { object, Commit , Object , ObjectDetached , Tag , Tree } ;
3
+ use crate :: { object, Blob , Commit , Object , ObjectDetached , Tag , Tree } ;
4
4
5
5
impl < ' repo > From < Object < ' repo > > for ObjectDetached {
6
6
fn from ( mut v : Object < ' repo > ) -> Self {
@@ -59,11 +59,11 @@ impl<'repo> TryFrom<Object<'repo>> for Commit<'repo> {
59
59
type Error = Object < ' repo > ;
60
60
61
61
fn try_from ( mut value : Object < ' repo > ) -> Result < Self , Self :: Error > {
62
- let handle = value. repo ;
62
+ let repo = value. repo ;
63
63
match value. kind {
64
64
object:: Kind :: Commit => Ok ( Commit {
65
65
id : value. id ,
66
- repo : handle ,
66
+ repo,
67
67
data : steal_from_freelist ( & mut value. data ) ,
68
68
} ) ,
69
69
_ => Err ( value) ,
@@ -75,11 +75,11 @@ impl<'repo> TryFrom<Object<'repo>> for Tag<'repo> {
75
75
type Error = Object < ' repo > ;
76
76
77
77
fn try_from ( mut value : Object < ' repo > ) -> Result < Self , Self :: Error > {
78
- let handle = value. repo ;
78
+ let repo = value. repo ;
79
79
match value. kind {
80
80
object:: Kind :: Tag => Ok ( Tag {
81
81
id : value. id ,
82
- repo : handle ,
82
+ repo,
83
83
data : steal_from_freelist ( & mut value. data ) ,
84
84
} ) ,
85
85
_ => Err ( value) ,
@@ -91,11 +91,27 @@ impl<'repo> TryFrom<Object<'repo>> for Tree<'repo> {
91
91
type Error = Object < ' repo > ;
92
92
93
93
fn try_from ( mut value : Object < ' repo > ) -> Result < Self , Self :: Error > {
94
- let handle = value. repo ;
94
+ let repo = value. repo ;
95
95
match value. kind {
96
96
object:: Kind :: Tree => Ok ( Tree {
97
97
id : value. id ,
98
- repo : handle,
98
+ repo,
99
+ data : steal_from_freelist ( & mut value. data ) ,
100
+ } ) ,
101
+ _ => Err ( value) ,
102
+ }
103
+ }
104
+ }
105
+
106
+ impl < ' repo > TryFrom < Object < ' repo > > for Blob < ' repo > {
107
+ type Error = Object < ' repo > ;
108
+
109
+ fn try_from ( mut value : Object < ' repo > ) -> Result < Self , Self :: Error > {
110
+ let repo = value. repo ;
111
+ match value. kind {
112
+ object:: Kind :: Blob => Ok ( Blob {
113
+ id : value. id ,
114
+ repo,
99
115
data : steal_from_freelist ( & mut value. data ) ,
100
116
} ) ,
101
117
_ => Err ( value) ,
0 commit comments