Plan 9 from Bell Labs’s /usr/web/sources/contrib/ericvh/go-plan9/src/pkg/strings/reader.go

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package strings

import "os"

// A Reader satisfies calls to Read and ReadByte by
// reading from a string.
type Reader string

func (r *Reader) Read(b []byte) (n int, err os.Error) {
	s := *r;
	if len(s) == 0 {
		return 0, os.EOF
	}
	for n < len(s) && n < len(b) {
		b[n] = s[n];
		n++;
	}
	*r = s[n:];
	return;
}

func (r *Reader) ReadByte() (b byte, err os.Error) {
	s := *r;
	if len(s) == 0 {
		return 0, os.EOF
	}
	b = s[0];
	*r = s[1:];
	return;
}

// NewReader returns a new Reader reading from s.
// It is similar to bytes.NewBufferString but more efficient and read-only.
func NewReader(s string) *Reader	{ return (*Reader)(&s) }

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.