File tree Expand file tree Collapse file tree 1 file changed +15
-23
lines changed Expand file tree Collapse file tree 1 file changed +15
-23
lines changed Original file line number Diff line number Diff line change @@ -52,31 +52,23 @@ export class RespEncoder<W extends IWriter & IWriterGrowable = IWriter & IWriter
5252 }
5353
5454 protected writeLength ( length : number ) : void {
55- let digits = 1 ;
56- if ( length < 10000 ) {
57- if ( length < 100 ) {
58- if ( length < 10 ) digits = 1 ;
59- else digits = 2 ;
60- } else {
61- if ( length < 1000 ) digits = 3 ;
62- else digits = 4 ;
63- }
64- } else if ( length < 100000000 ) {
65- if ( length < 1000000 ) {
66- if ( length < 100000 ) digits = 5 ;
67- else digits = 6 ;
68- } else {
69- if ( length < 10000000 ) digits = 7 ;
70- else digits = 8 ;
71- }
72- } else {
73- let pow = 10 ;
74- while ( length >= pow ) {
75- digits ++ ;
76- pow *= 10 ;
55+ const writer = this . writer ;
56+ if ( length < 100 ) {
57+ if ( length < 10 ) {
58+ writer . u8 ( length + 48 ) ;
59+ return ;
7760 }
61+ const octet1 = length % 10 ;
62+ const octet2 = ( length - octet1 ) / 10 ;
63+ writer . u16 ( ( ( octet2 + 48 ) << 8 ) + octet1 + 48 ) ;
64+ return ;
65+ }
66+ let digits = 1 ;
67+ let pow = 10 ;
68+ while ( length >= pow ) {
69+ digits ++ ;
70+ pow *= 10 ;
7871 }
79- const writer = this . writer ;
8072 writer . ensureCapacity ( digits ) ;
8173 const uint8 = writer . uint8 ;
8274 const x = writer . x ;
You can’t perform that action at this time.
0 commit comments