mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-27 13:48:51 +08:00
12 lines
21 KiB
Go
12 lines
21 KiB
Go
![]() |
//
|
||
|
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
||
|
//
|
||
|
// This is a commercial product and requires a license to operate.
|
||
|
// A trial license can be obtained at https://unidoc.io
|
||
|
//
|
||
|
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
||
|
//
|
||
|
// Use of this source code is governed by the UniDoc End User License Agreement
|
||
|
// terms that can be accessed at https://unidoc.io/eula/
|
||
|
|
||
|
package bitwise ;import (_be "encoding/binary";_gg "errors";_bd "github.com/unidoc/unipdf/v3/common";_f "github.com/unidoc/unipdf/v3/internal/jbig2/errors";_g "io";);func (_fc *BufferedWriter )Len ()int {return _fc .byteCapacity ()};func (_aa *BufferedWriter )WriteByte (bt byte )error {if _aa ._gb > len (_aa ._ga )-1||(_aa ._gb ==len (_aa ._ga )-1&&_aa ._e !=0){_aa .expandIfNeeded (1);};_aa .writeByte (bt );return nil ;};func (_baf *SubstreamReader )readUnalignedByte ()(_gee byte ,_agd error ){_fabf :=_baf ._ced ;_gee =_baf ._efb <<(8-_fabf );_baf ._efb ,_agd =_baf .readBufferByte ();if _agd !=nil {return 0,_agd ;};_gee |=_baf ._efb >>_fabf ;_baf ._efb &=1<<_fabf -1;return _gee ,nil ;};var _ _g .ByteWriter =&BufferedWriter {};func (_gf *BufferedWriter )SkipBits (skip int )error {if skip ==0{return nil ;};_fg :=int (_gf ._e )+skip ;if _fg >=0&&_fg < 8{_gf ._e =uint8 (_fg );return nil ;};_fg =int (_gf ._e )+_gf ._gb *8+skip ;if _fg < 0{return _f .Errorf ("\u0057r\u0069t\u0065\u0072\u002e\u0053\u006b\u0069\u0070\u0042\u0069\u0074\u0073","\u0069n\u0064e\u0078\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");};_fb :=_fg /8;_gfe :=_fg %8;_gf ._e =uint8 (_gfe );if _ab :=_fb -_gf ._gb ;_ab > 0&&len (_gf ._ga )-1< _fb {if _gf ._e !=0{_ab ++;};_gf .expandIfNeeded (_ab );};_gf ._gb =_fb ;return nil ;};func (_fbd *SubstreamReader )ReadByte ()(byte ,error ){if _fbd ._ced ==0{return _fbd .readBufferByte ();};return _fbd .readUnalignedByte ();};func NewWriter (data []byte )*Writer {return &Writer {_ccbf :data }};func (_bfbf *Writer )WriteByte (c byte )error {return _bfbf .writeByte (c )};func (_gbg *Writer )FinishByte (){if _gbg ._ggd ==0{return ;};_gbg ._ggd =0;_gbg ._ac ++;};func (_dda *SubstreamReader )StreamPosition ()int64 {return int64 (_dda ._fag )};type BinaryWriter interface{BitWriter ;_g .Writer ;_g .ByteWriter ;Data ()[]byte ;};func (_cb *BufferedWriter )writeByte (_fa byte ){switch {case _cb ._e ==0:_cb ._ga [_cb ._gb ]=_fa ;_cb ._gb ++;case _cb ._ce :_cb ._ga [_cb ._gb ]|=_fa >>_cb ._e ;_cb ._gb ++;_cb ._ga [_cb ._gb ]=byte (uint16 (_fa )<<(8-_cb ._e )&0xff);default:_cb ._ga [_cb ._gb ]|=byte (uint16 (_fa )<<_cb ._e &0xff);_cb ._gb ++;_cb ._ga [_cb ._gb ]=_fa >>(8-_cb ._e );};};func (_bbc *SubstreamReader )readBool ()(_ddcb bool ,_cg error ){if _bbc ._ced ==0{_bbc ._efb ,_cg =_bbc .readBufferByte ();if _cg !=nil {return false ,_cg ;};_ddcb =(_bbc ._efb &0x80)!=0;_bbc ._efb ,_bbc ._ced =_bbc ._efb &0x7f,7;return _ddcb ,nil ;};_bbc ._ced --;_ddcb =(_bbc ._efb &(1<<_bbc ._ced ))!=0;_bbc ._efb &=1<<_bbc ._ced -1;return _ddcb ,nil ;};var _ _g .Writer =&BufferedWriter {};func (_ddd *SubstreamReader )ReadBool ()(bool ,error ){return _ddd .readBool ()};func (_caac *Writer )Write (p []byte )(int ,error ){if len (p )> _caac .byteCapacity (){return 0,_g .EOF ;};for _ ,_cdb :=range p {if _dcdad :=_caac .writeByte (_cdb );_dcdad !=nil {return 0,_dcdad ;};};return len (p ),nil ;};func (_dcdd *SubstreamReader )ReadUint32 ()(uint32 ,error ){_dae :=make ([]byte ,4);_ ,_ded :=_dcdd .Read (_dae );if _ded !=nil {return 0,_ded ;};return _be .BigEndian .Uint32 (_dae ),nil ;};func (_ca *BufferedWriter )WriteBits (bits uint64 ,number int )(_ed int ,_ff error ){const _df ="\u0042u\u0066\u0066\u0065\u0072e\u0064\u0057\u0072\u0069\u0074e\u0072.\u0057r\u0069\u0074\u0065\u0072\u0042\u0069\u0074s";if number < 0||number > 64{return 0,_f .Errorf (_df ,"\u0062i\u0074\u0073 \u006e\u0075\u006db\u0065\u0072\u0020\u006d\u0075\u0073\u0074 \u0062\u0065\u0020\u0069\u006e\u0020r\u0061\u006e\u0067\u0065\u0020\u003c\u0030\u002c\u0036\u0034\u003e,\u0020\u0069\u0073\u003a\u0020\u0027\u0025\u0064\u0027",number );};_cea :=number /8;if _cea > 0{_fcb :=number -_cea *8;for _ggb :=_cea -1;_ggb >=0;_ggb --{_fcbd :=byte ((bits >>uint (_ggb *8+_fcb ))&0xff);if _ff =_ca .WriteByte (_fcbd );_ff !=nil {return _ed ,_f .Wrapf (_ff ,_df ,"\u0062\u0079\u0074\u0065\u003a\u0020\u0027\u0025\u0064\u0027",_cea -_ggb +1);};};number -=_cea *8;if number ==0{return _cea ,nil ;};};var _dga int ;for _dc :=0;_dc < number ;_dc ++{if _ca ._ce {_dga =int ((bits >>uint (number
|