// 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 io import os "os" import syscall "syscall" export type Read interface { Read(p *[]byte) (n int, err *os.Error); } export type Write interface { Write(p *[]byte) (n int, err *os.Error); } export type ReadWrite interface { Read(p *[]byte) (n int, err *os.Error); Write(p *[]byte) (n int, err *os.Error); } export func WriteString(w Write, s string) (n int, err *os.Error) { b := new([]byte, len(s)+1) if !syscall.StringToBytes(b, s) { return -1, os.EINVAL } // BUG return w.Write(b[0:len(s)]) r, e := w.Write(b[0:len(s)]) return r, e }