Commit Graph

2625 Commits

Author SHA1 Message Date
Geoffroy Couprie
68215b4fe6 do not crash the tests 2015-02-15 00:44:19 +01:00
Geoffroy Couprie
86a765b735 load more of the file at once 2015-02-15 00:43:58 +01:00
Geoffroy Couprie
20bf4c5120 parse only a few boxes 2015-02-15 00:43:46 +01:00
Geoffroy Couprie
61ead4c82f Recognize Moov box types 2015-02-15 00:41:03 +01:00
Geoffroy Couprie
17287ad14a add the Wide and Skip boxes 2015-02-14 23:29:09 +01:00
Geoffroy Couprie
7f6ed2b418 assemble box parsers 2015-02-14 21:25:58 +01:00
Geoffroy Couprie
252c13d659 Move HexDisplay to a separate module 2015-02-14 21:15:41 +01:00
Geoffroy Couprie
e194e7207a the Free box has the free tag 2015-02-14 20:45:27 +01:00
Geoffroy Couprie
fd90c0dc9d return incomplete when necessary 2015-02-14 20:45:14 +01:00
Geoffroy Couprie
f0a127910d stream the parser 2015-02-14 20:32:43 +01:00
Geoffroy Couprie
2ecdbf6e0f retransmit errors and incomplete 2015-02-14 20:32:16 +01:00
Geoffroy Couprie
fb3b3879e1 match on box_parser 2015-02-14 20:23:54 +01:00
Geoffroy Couprie
980b19c79f Incomplete contains an integer for now 2015-02-14 20:23:36 +01:00
Geoffroy Couprie
8e08917a2e augment the chunk size 2015-02-14 20:21:06 +01:00
Geoffroy Couprie
d13ad8caec prepare for parsing multiple boxes 2015-02-14 20:08:37 +01:00
Geoffroy Couprie
acc93a5d18 create the filetype_box parser 2015-02-14 19:44:12 +01:00
Geoffroy Couprie
913dfb6071 parse mp4 boxes 2015-02-14 19:33:32 +01:00
Geoffroy Couprie
5651b5fbba add address number 2015-02-14 18:27:05 +01:00
Geoffroy Couprie
a9251f95be parse the mp4 brand 2015-02-14 15:38:38 +01:00
Geoffroy Couprie
d938339fca Add the take macro 2015-02-14 15:26:31 +01:00
Geoffroy Couprie
ee8eed987e begin implementation of mp4 parser 2015-02-14 14:49:37 +01:00
Geoffroy Couprie
ed75679420 Move code around 2015-02-14 00:36:45 +01:00
Geoffroy Couprie
35d56bd177 Add take_until macro and related ones
THis improves the syntax for token separated formats like the ini
files, but this is not yet good enough
2015-02-14 00:30:14 +01:00
Geoffroy Couprie
72ba27dfd2 clean the ini parsing code 2015-02-13 10:04:43 +01:00
Geoffroy Couprie
c60df94d17 Can create a tag by returning a closure
The lifetime of embedded data is incompatible with the
chaining macros, though
2015-02-13 09:57:17 +01:00
Geoffroy Couprie
d5a32b15a8 remove some warnings 2015-02-12 21:58:00 +01:00
Geoffroy Couprie
419df5dc45 Fix FlatMp implementation
Now, flatmap keeps the input part from the IResult it is applied
on.

This will allow usage of the Incomplete closures
2015-02-08 23:19:12 +01:00
Geoffroy Couprie
5505c7d502 begin support for Partial closures 2015-02-06 23:53:52 +01:00
Geoffroy Couprie
76d99a6fba remove some as_slice usage 2015-02-06 14:37:56 +01:00
Geoffroy Couprie
64b0888737 SHow is now named Debug 2015-02-06 14:37:45 +01:00
Geoffroy Couprie
dca1af3d08 bump version 2015-02-06 14:30:07 +01:00
Geoffroy Couprie
c7c61c2cf6 closure syntax changed again 2015-02-06 14:29:47 +01:00
Geoffroy Couprie
0518b6fc69 bump version 2015-01-29 22:20:20 +01:00
Geoffroy Couprie
1dd401aa4f Implement slincing and ranging syntax
Remove some warnings
2015-01-29 13:54:19 +01:00
Geoffroy Couprie
bf5d79865f rename io to old_io 2015-01-29 13:34:03 +01:00
Geoffroy Couprie
3bd1d4f468 Reorder variables to fix ther relative lifetimes
See
d77f6d5366
for more information.

This commit fixes errors like this one:
src/nom.rs:546:27: 546:28 error: `i` does not live long enough
src/nom.rs:546     assert_eq!(res, Done(&i[], &o[]))
                                         ^
<std macros>:1:1: 9:39 note: in expansion of assert_eq!
src/nom.rs:546:5: 547:4 note: expansion site
src/nom.rs:543:62: 547:4 note: reference must be valid for the block suffix following statement 1 at 543:61...
src/nom.rs:543     let res = Done((), arr.as_slice()).flat_map(sized_buffer);
src/nom.rs:544     let i:Vec<u8> = vec![7,8];
src/nom.rs:545     let o:Vec<u8> = vec![4,5,6];
src/nom.rs:546     assert_eq!(res, Done(&i[], &o[]))
src/nom.rs:547   }
src/nom.rs:544:30: 547:4 note: ...but borrowed value is only valid for the block suffix following statement 2 at 544:29
src/nom.rs:544     let i:Vec<u8> = vec![7,8];
src/nom.rs:545     let o:Vec<u8> = vec![4,5,6];
src/nom.rs:546     assert_eq!(res, Done(&i[], &o[]))
src/nom.rs:547   }
2015-01-29 13:31:31 +01:00
Geoffroy Couprie
fdad98bca5 more documentation 2015-01-29 01:07:40 +01:00
Geoffroy Couprie
dc4db51102 ignore code examples to fix macro usage 2015-01-29 01:07:27 +01:00
Geoffroy Couprie
5b5dcb92f8 more docs 2015-01-29 00:47:40 +01:00
Geoffroy Couprie
329dc53469 add some doc 2015-01-29 00:05:46 +01:00
Geoffroy Couprie
42d12e08ad documentation link 2015-01-28 16:10:07 +01:00
Geoffroy Couprie
2314c89911 Replace trait implementations with reusable macros 2015-01-27 14:13:50 +01:00
Geoffroy Couprie
4edf5218a8 bump minor version 2015-01-24 13:49:51 +01:00
Geoffroy Couprie
d97eb90718 SHow is now named Debug 2015-01-24 13:37:36 +01:00
Geoffroy Couprie
75b9be3bd0 remove some warnings 2015-01-18 13:12:58 +01:00
Geoffroy Couprie
544d2f9b9d add travis file 2015-01-17 18:44:20 +01:00
Geoffroy Couprie
446b824c13 remove some warnings 2015-01-17 18:43:32 +01:00
Geoffroy Couprie
72f261e147 update the cargo description 2015-01-17 18:40:40 +01:00
Geoffroy Couprie
1db2ef0b51 fix macro usage 2015-01-08 20:50:32 +01:00
Geoffroy Couprie
5aa692f1dc remove an old test case 2015-01-08 14:40:03 +01:00