]> gitweb.factorcode.org Git - factor.git/blob - core/io/encodings/ascii/ascii.factor
Switch to https urls
[factor.git] / core / io / encodings / ascii / ascii.factor
1 ! Copyright (C) 2008 Daniel Ehrenberg.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: accessors io io.encodings io.encodings.private kernel
4 math sequences strings ;
5 IN: io.encodings.ascii
6
7 SINGLETON: ascii
8
9 M: ascii encode-char
10     drop
11     over 127 <= [ stream-write1 ] [ encode-error ] if ; inline
12
13 <PRIVATE
14
15 GENERIC: ascii> ( string -- byte-array )
16
17 M: object ascii>
18     [ dup 127 <= [ encode-error ] unless ] B{ } map-as ; inline
19
20 M: string ascii>
21     dup aux>>
22     [ call-next-method ]
23     [ string>byte-array-fast ] if ; inline
24
25 PRIVATE>
26
27 M: ascii encode-string
28     drop
29     [ ascii> ] dip stream-write ;
30
31 M: ascii decode-char
32     drop
33     stream-read1 dup [
34         dup 127 <= [ >fixnum ] [ drop replacement-char ] if
35     ] when ; inline
36
37 M: ascii decode-until (decode-until) ;