]> gitweb.factorcode.org Git - factor.git/blob - core/checksums/checksums.factor
08a13297d11be2b74ed0d392343668933e5144ce
[factor.git] / core / checksums / checksums.factor
1 ! Copyright (c) 2008 Slava Pestov
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: sequences math.parser io io.streams.byte-array
4 io.encodings.binary io.files kernel ;
5 IN: checksums
6
7 MIXIN: checksum
8
9 GENERIC: checksum-bytes ( bytes checksum -- value )
10
11 GENERIC: checksum-stream ( stream checksum -- value )
12
13 GENERIC: checksum-lines ( lines checksum -- value )
14
15 M: checksum checksum-bytes >r binary <byte-reader> r> checksum-stream ;
16
17 M: checksum checksum-stream >r contents r> checksum-bytes ;
18
19 M: checksum checksum-lines >r B{ CHAR: \n } join r> checksum-bytes ;
20
21 : checksum-file ( path checksum -- value )
22     >r binary <file-reader> r> checksum-stream ;
23
24 : hex-string ( seq -- str )
25     [ >hex 2 CHAR: 0 pad-left ] { } map-as concat ;