make pack/unpack public
parent
d45f0c83eb
commit
41e0db098c
|
@ -87,12 +87,12 @@ CONSTANT: packed-length-table
|
||||||
{ CHAR: D 8 }
|
{ CHAR: D 8 }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PRIVATE>
|
||||||
|
|
||||||
MACRO: pack ( str -- quot )
|
MACRO: pack ( str -- quot )
|
||||||
[ pack-table at '[ _ execute ] ] { } map-as
|
[ pack-table at '[ _ execute ] ] { } map-as
|
||||||
'[ [ [ _ spread ] input<sequence ] B{ } append-outputs-as ] ;
|
'[ [ [ _ spread ] input<sequence ] B{ } append-outputs-as ] ;
|
||||||
|
|
||||||
PRIVATE>
|
|
||||||
|
|
||||||
: ch>packed-length ( ch -- n )
|
: ch>packed-length ( ch -- n )
|
||||||
packed-length-table at ; inline
|
packed-length-table at ; inline
|
||||||
|
|
||||||
|
@ -113,14 +113,14 @@ PRIVATE>
|
||||||
: start/end ( seq -- seq1 seq2 )
|
: start/end ( seq -- seq1 seq2 )
|
||||||
[ 0 [ + ] accumulate nip dup ] keep v+ ; inline
|
[ 0 [ + ] accumulate nip dup ] keep v+ ; inline
|
||||||
|
|
||||||
|
PRIVATE>
|
||||||
|
|
||||||
MACRO: unpack ( str -- quot )
|
MACRO: unpack ( str -- quot )
|
||||||
[ [ ch>packed-length ] { } map-as start/end ]
|
[ [ ch>packed-length ] { } map-as start/end ]
|
||||||
[ [ unpack-table at '[ @ ] ] { } map-as ] bi
|
[ [ unpack-table at '[ @ ] ] { } map-as ] bi
|
||||||
[ '[ [ _ _ ] dip <slice> @ ] ] 3map
|
[ '[ [ _ _ ] dip <slice> @ ] ] 3map
|
||||||
'[ [ _ cleave ] output>array ] ;
|
'[ [ _ cleave ] output>array ] ;
|
||||||
|
|
||||||
PRIVATE>
|
|
||||||
|
|
||||||
: unpack-native ( seq str -- seq )
|
: unpack-native ( seq str -- seq )
|
||||||
'[ _ _ unpack ] with-native-endian ; inline
|
'[ _ _ unpack ] with-native-endian ; inline
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue