Skip to content

Commit 05189cd

Browse files
committed
feat: add protocol implementation for shmipc
1 parent 7274030 commit 05189cd

File tree

6 files changed

+1549
-428
lines changed

6 files changed

+1549
-428
lines changed

pilota/src/thrift/binary.rs

Lines changed: 0 additions & 183 deletions
Original file line numberDiff line numberDiff line change
@@ -559,189 +559,6 @@ impl TOutputProtocol for TBinaryProtocol<&mut LinkedBytes> {
559559
}
560560
}
561561

562-
impl<'a> TOutputProtocol for TBinaryProtocol<&'a mut [u8]> {
563-
type BufMut = &'a mut [u8];
564-
565-
#[inline]
566-
fn write_message_begin(
567-
&mut self,
568-
identifier: &TMessageIdentifier,
569-
) -> Result<(), ThriftException> {
570-
let msg_type_u8: u8 = identifier.message_type.into();
571-
let version = (VERSION_1 | msg_type_u8 as u32) as i32;
572-
self.write_i32(version)?;
573-
self.write_faststr(identifier.name.clone())?;
574-
self.write_i32(identifier.sequence_number)?;
575-
Ok(())
576-
}
577-
578-
#[inline]
579-
fn write_message_end(&mut self) -> Result<(), ThriftException> {
580-
Ok(())
581-
}
582-
583-
#[inline]
584-
fn write_struct_begin(&mut self, _: &TStructIdentifier) -> Result<(), ThriftException> {
585-
Ok(())
586-
}
587-
588-
#[inline]
589-
fn write_struct_end(&mut self) -> Result<(), ThriftException> {
590-
Ok(())
591-
}
592-
593-
#[inline]
594-
fn write_field_begin(&mut self, field_type: TType, id: i16) -> Result<(), ThriftException> {
595-
let mut data: [u8; 3] = [0; 3];
596-
data[0] = field_type as u8;
597-
let id = id.to_be_bytes();
598-
data[1] = id[0];
599-
data[2] = id[1];
600-
self.trans.write_slice(&data);
601-
Ok(())
602-
}
603-
604-
#[inline]
605-
fn write_field_end(&mut self) -> Result<(), ThriftException> {
606-
Ok(())
607-
}
608-
609-
#[inline]
610-
fn write_field_stop(&mut self) -> Result<(), ThriftException> {
611-
self.write_byte(TType::Stop as u8)
612-
}
613-
614-
#[inline]
615-
fn write_bool(&mut self, b: bool) -> Result<(), ThriftException> {
616-
if b {
617-
self.write_i8(1)
618-
} else {
619-
self.write_i8(0)
620-
}
621-
}
622-
623-
#[inline]
624-
fn write_bytes(&mut self, b: Bytes) -> Result<(), ThriftException> {
625-
self.write_i32(b.len() as i32)?;
626-
self.write_bytes_without_len(b)
627-
}
628-
629-
#[inline]
630-
fn write_bytes_without_len(&mut self, b: Bytes) -> Result<(), ThriftException> {
631-
self.trans.write_slice(&b);
632-
Ok(())
633-
}
634-
635-
#[inline]
636-
fn write_byte(&mut self, b: u8) -> Result<(), ThriftException> {
637-
self.trans.write_u8(b);
638-
Ok(())
639-
}
640-
641-
#[inline]
642-
fn write_uuid(&mut self, u: [u8; 16]) -> Result<(), ThriftException> {
643-
self.trans.write_slice(&u);
644-
Ok(())
645-
}
646-
647-
#[inline]
648-
fn write_i8(&mut self, i: i8) -> Result<(), ThriftException> {
649-
self.trans.write_i8(i);
650-
Ok(())
651-
}
652-
653-
#[inline]
654-
fn write_i16(&mut self, i: i16) -> Result<(), ThriftException> {
655-
self.trans.write_i16(i);
656-
Ok(())
657-
}
658-
659-
#[inline]
660-
fn write_i32(&mut self, i: i32) -> Result<(), ThriftException> {
661-
self.trans.write_i32(i);
662-
Ok(())
663-
}
664-
665-
#[inline]
666-
fn write_i64(&mut self, i: i64) -> Result<(), ThriftException> {
667-
self.trans.write_i64(i);
668-
Ok(())
669-
}
670-
671-
#[inline]
672-
fn write_double(&mut self, d: f64) -> Result<(), ThriftException> {
673-
self.trans.write_f64(d);
674-
Ok(())
675-
}
676-
677-
#[inline]
678-
fn write_string(&mut self, s: &str) -> Result<(), ThriftException> {
679-
self.write_i32(s.len() as i32)?;
680-
self.trans.write_slice(s.as_bytes());
681-
Ok(())
682-
}
683-
684-
#[inline]
685-
fn write_faststr(&mut self, s: FastStr) -> Result<(), ThriftException> {
686-
self.write_i32(s.len() as i32)?;
687-
self.trans.write_slice(s.as_ref());
688-
Ok(())
689-
}
690-
691-
#[inline]
692-
fn write_list_begin(&mut self, identifier: TListIdentifier) -> Result<(), ThriftException> {
693-
self.write_byte(identifier.element_type.into())?;
694-
self.write_i32(identifier.size as i32)
695-
}
696-
697-
#[inline]
698-
fn write_list_end(&mut self) -> Result<(), ThriftException> {
699-
Ok(())
700-
}
701-
702-
#[inline]
703-
fn write_set_begin(&mut self, identifier: TSetIdentifier) -> Result<(), ThriftException> {
704-
self.write_byte(identifier.element_type.into())?;
705-
self.write_i32(identifier.size as i32)
706-
}
707-
708-
#[inline]
709-
fn write_set_end(&mut self) -> Result<(), ThriftException> {
710-
Ok(())
711-
}
712-
713-
#[inline]
714-
fn write_map_begin(&mut self, identifier: TMapIdentifier) -> Result<(), ThriftException> {
715-
let key_type = identifier.key_type;
716-
self.write_byte(key_type.into())?;
717-
let val_type = identifier.value_type;
718-
self.write_byte(val_type.into())?;
719-
self.write_i32(identifier.size as i32)
720-
}
721-
722-
#[inline]
723-
fn write_map_end(&mut self) -> Result<(), ThriftException> {
724-
Ok(())
725-
}
726-
727-
#[inline]
728-
fn flush(&mut self) -> Result<(), ThriftException> {
729-
Ok(())
730-
}
731-
732-
#[inline]
733-
fn write_bytes_vec(&mut self, b: &[u8]) -> Result<(), ThriftException> {
734-
self.write_i32(b.len() as i32)?;
735-
self.trans.write_slice(b);
736-
Ok(())
737-
}
738-
739-
#[inline]
740-
fn buf_mut(&mut self) -> &mut Self::BufMut {
741-
&mut self.trans
742-
}
743-
}
744-
745562
impl TInputProtocol for TBinaryProtocol<&mut Bytes> {
746563
type Buf = Bytes;
747564

0 commit comments

Comments
 (0)