Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // union foo {
- // int i;
- // float f;
- // };
- type foo struct {
- data [4]byte
- }
- func (f foo) i() int32 {
- return int32(f.data)
- }
- func (f foo) setI(i int32) {
- f.data = [4]byte(b)
- }
- func (f foo) f() float32 {
- return float32(f.data)
- }
- func (f foo) setF(f float32) {
- f.data = [4]byte(b)
- }
- // Read a foo from r into data
- func readFoo(r io.Reader, order binary.ByteOrder, data *foo) error {
- b := make([]byte, 4)
- if _, err := io.ReadFull(r, b); err != nil {
- return err
- }
- *data = foo{data: [4]byte(order.PutUint32(b))}
- return nil
- }
- // Write a foo from data into w
- func writeFoo(w io.Writer, order binary.ByteOrder, data foo) error {
- b := make([]byte, 4)
- order.PutUint32(b, uint32(data))
- _, err := w.Write(b)
- return err
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement