11use std:: convert:: TryFrom ;
22
3- use crate :: { object, Commit , Object , ObjectDetached , Tag , Tree } ;
3+ use crate :: { object, Blob , Commit , Object , ObjectDetached , Tag , Tree } ;
44
55impl < ' repo > From < Object < ' repo > > for ObjectDetached {
66 fn from ( mut v : Object < ' repo > ) -> Self {
@@ -59,11 +59,11 @@ impl<'repo> TryFrom<Object<'repo>> for Commit<'repo> {
5959 type Error = Object < ' repo > ;
6060
6161 fn try_from ( mut value : Object < ' repo > ) -> Result < Self , Self :: Error > {
62- let handle = value. repo ;
62+ let repo = value. repo ;
6363 match value. kind {
6464 object:: Kind :: Commit => Ok ( Commit {
6565 id : value. id ,
66- repo : handle ,
66+ repo,
6767 data : steal_from_freelist ( & mut value. data ) ,
6868 } ) ,
6969 _ => Err ( value) ,
@@ -75,11 +75,11 @@ impl<'repo> TryFrom<Object<'repo>> for Tag<'repo> {
7575 type Error = Object < ' repo > ;
7676
7777 fn try_from ( mut value : Object < ' repo > ) -> Result < Self , Self :: Error > {
78- let handle = value. repo ;
78+ let repo = value. repo ;
7979 match value. kind {
8080 object:: Kind :: Tag => Ok ( Tag {
8181 id : value. id ,
82- repo : handle ,
82+ repo,
8383 data : steal_from_freelist ( & mut value. data ) ,
8484 } ) ,
8585 _ => Err ( value) ,
@@ -91,11 +91,27 @@ impl<'repo> TryFrom<Object<'repo>> for Tree<'repo> {
9191 type Error = Object < ' repo > ;
9292
9393 fn try_from ( mut value : Object < ' repo > ) -> Result < Self , Self :: Error > {
94- let handle = value. repo ;
94+ let repo = value. repo ;
9595 match value. kind {
9696 object:: Kind :: Tree => Ok ( Tree {
9797 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,
99115 data : steal_from_freelist ( & mut value. data ) ,
100116 } ) ,
101117 _ => Err ( value) ,
0 commit comments