view auth/encode.go @ 289:aee175e3f82c usermanagement

feat: Listing of users on management page Prototypical implementation of listing of all users on management page implemented. Data is fetched before route is entered. Unless the data isn't available the route is not changed. After data is available currently a simple unstyled table with data is rendered.
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 31 Jul 2018 12:02:48 +0200
parents f345edb409b2
children
line wrap: on
line source

package auth

import (
	"encoding/binary"
	"io"
)

type binReader struct {
	r   io.Reader
	err error
}

func (r *binReader) read(x interface{}) {
	if r.err == nil {
		r.err = binary.Read(r.r, binary.BigEndian, x)
	}
}

func (r *binReader) readString(s *string) {
	if r.err != nil {
		return
	}
	var l uint32
	if r.err = binary.Read(r.r, binary.BigEndian, &l); r.err != nil {
		return
	}
	b := make([]byte, l)
	if r.err = binary.Read(r.r, binary.BigEndian, b); r.err != nil {
		return
	}
	*s = string(b)
}

type binWriter struct {
	w   io.Writer
	err error
}

func (w *binWriter) write(x interface{}) {
	if w.err == nil {
		w.err = binary.Write(w.w, binary.BigEndian, x)
	}
}

func (w *binWriter) writeString(s string) {
	if w.err == nil {
		w.err = binary.Write(w.w, binary.BigEndian, uint32(len(s)))
	}
	if w.err == nil {
		w.err = binary.Write(w.w, binary.BigEndian, []byte(s))
	}
}