data_writer.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package network
  2. import (
  3. "encoding/binary"
  4. "io"
  5. )
  6. type DataWriter struct {
  7. w io.Writer
  8. }
  9. func NewDataWriter(w io.Writer) *DataWriter {
  10. return &DataWriter{w: w}
  11. }
  12. func (reader *DataWriter) Byte(b byte) error {
  13. err := binary.Write(reader.w, binary.BigEndian, b)
  14. if err != nil {
  15. return err
  16. }
  17. return nil
  18. }
  19. func (reader *DataWriter) Bytes(bs []byte) error {
  20. err := binary.Write(reader.w, binary.BigEndian, bs)
  21. if err != nil {
  22. return err
  23. }
  24. return nil
  25. }
  26. func (reader *DataWriter) Uint8(u uint8) error {
  27. err := binary.Write(reader.w, binary.BigEndian, u)
  28. if err != nil {
  29. return err
  30. }
  31. return nil
  32. }
  33. func (reader *DataWriter) Uint16(u uint16) error {
  34. err := binary.Write(reader.w, binary.BigEndian, u)
  35. if err != nil {
  36. return err
  37. }
  38. return nil
  39. }
  40. func (reader *DataWriter) Uint32(u uint32) error {
  41. err := binary.Write(reader.w, binary.BigEndian, u)
  42. if err != nil {
  43. return err
  44. }
  45. return nil
  46. }
  47. func (reader *DataWriter) Uint64(u uint64) error {
  48. err := binary.Write(reader.w, binary.BigEndian, u)
  49. if err != nil {
  50. return err
  51. }
  52. return nil
  53. }
  54. func (reader *DataWriter) String(s string) error {
  55. err := binary.Write(reader.w, binary.BigEndian, []byte(s))
  56. if err != nil {
  57. return err
  58. }
  59. return nil
  60. }