Copyright 2011 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 token

fields correspond 1:1 to fields with same (lower-case) name in File
Read calls decode to deserialize a file set into s; s must not be nil.
func ( *FileSet) ( func(interface{}) error) error {
	var  serializedFileSet
	if  := (&);  != nil {
		return 
	}

	.mutex.Lock()
	.base = .Base
	 := make([]*File, len(.Files))
	for  := 0;  < len(.Files); ++ {
		 := &.Files[]
		[] = &File{, .Name, .Base, .Size, .Lines, .Infos}
	}
	.files = 
	.last = nil
	.mutex.Unlock()

	return nil
}
Write calls encode to serialize the file set s.
func ( *FileSet) ( func(interface{}) error) error {
	var  serializedFileSet

	.mutex.Lock()
	.Base = .base
	 := make([]serializedFile, len(.files))
	for ,  := range .files {
		[] = serializedFile{.name, .base, .size, .lines, .infos}
	}
	.Files = 
	.mutex.Unlock()

	return ()