@@ -7,58 +7,7 @@ use filetime::FileTime;
7
7
8
8
pub mod file;
9
9
10
- pub mod extension {
11
- use crate :: { util:: read_u32, Version } ;
12
-
13
- const MIN_SIZE : usize = 4 /* signature */ + 4 /* size */ ;
14
-
15
- fn decode_header ( data : & [ u8 ] ) -> ( [ u8 ; 4 ] , u32 , & [ u8 ] ) {
16
- let ( signature, data) = data. split_at ( 4 ) ;
17
- let ( size, data) = data. split_at ( 4 ) ;
18
- ( signature. try_into ( ) . unwrap ( ) , read_u32 ( size) , data)
19
- }
20
-
21
- mod end_of_index_entry {
22
- use crate :: { extension, extension:: EndOfIndexEntry , file:: header, util:: read_u32} ;
23
-
24
- impl EndOfIndexEntry {
25
- pub fn from_bytes ( data : & [ u8 ] , object_hash : git_hash:: Kind ) -> Option < Self > {
26
- let hash_len = object_hash. len_in_bytes ( ) ;
27
- if data. len ( ) < EndOfIndexEntry :: SIZE_WITH_HEADER + hash_len {
28
- return None ;
29
- }
30
-
31
- let start_of_eoie = data. len ( ) - EndOfIndexEntry :: SIZE_WITH_HEADER - hash_len;
32
- let data = & data[ start_of_eoie..] [ ..hash_len] ;
33
-
34
- let ( signature, ext_size, data) = extension:: decode_header ( data) ;
35
- if & signature != EndOfIndexEntry :: SIGNATURE || ext_size as usize != EndOfIndexEntry :: SIZE {
36
- return None ;
37
- }
38
-
39
- let ( offset, hash) = data. split_at ( 4 ) ;
40
- let offset = read_u32 ( offset) as usize ;
41
- if offset < header:: SIZE {
42
- return None ;
43
- }
44
- todo ! ( "eoie" )
45
- }
46
- }
47
- }
48
-
49
- pub struct EndOfIndexEntry {
50
- /// The offset the the beginning of all extensions, or the end of all entries.
51
- offset_to_extensions : u32 ,
52
- /// The SHA1 checksum over the signature and size of all extensions.
53
- checksum : git_hash:: ObjectId ,
54
- }
55
-
56
- impl EndOfIndexEntry {
57
- pub const SIGNATURE : & ' static [ u8 ] = b"EOIE" ;
58
- pub const SIZE : usize = 4 /* offset to extensions */ + git_hash:: Kind :: Sha1 . len_in_bytes ( ) ;
59
- pub const SIZE_WITH_HEADER : usize = crate :: extension:: MIN_SIZE + Self :: SIZE ;
60
- }
61
- }
10
+ pub mod extension;
62
11
63
12
pub mod init {
64
13
use filetime:: FileTime ;
0 commit comments