gcimporter

package
v0.0.0-...-aece5f1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2017 License: BSD-3-Clause, MIT, BSD-3-Clause Imports: 18 Imported by: 0

Documentation

Overview

Package gcimporter implements Import for gc-generated object files.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BImportData

func BImportData(imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error)

BImportData imports a package from the serialized package data and returns the number of bytes consumed and a reference to the package. If data is obviously malformed, an error is returned but in general it is not recommended to call BImportData on untrusted data.

func FindExportData

func FindExportData(r *bufio.Reader) (hdr string, err error)

FindExportData positions the reader r at the beginning of the export data section of an underlying GC-created object/archive file by reading from it. The reader must be positioned at the start of the file before calling this function. The hdr result is the string before the export data, either "$$" or "$$B".

func FindPkg

func FindPkg(ctxt *build.Context, path, srcDir string) (filename, id string)

FindPkg returns the filename and unique package id for an import path based on package information provided by build.Import (using the build.Default build.Context). A relative srcDir is interpreted relative to the current working directory. If no file was found, an empty filename is returned.

func Import

func Import(ctxt *build.Context, packages map[string]*types.Package, path, srcDir string) (pkg *types.Package, err error)

Import imports a gc-generated package given its import path and srcDir, adds the corresponding package object to the packages map, and returns the object. The packages map must contain all packages already imported.

func ImportData

func ImportData(packages map[string]*types.Package, filename, id string, data io.Reader) (pkg *types.Package, err error)

ImportData imports a package by reading the gc-generated export data, adds the corresponding package object to the packages map indexed by id, and returns the object.

The packages map must contains all packages already imported. The data reader position must be the beginning of the export data section. The filename is only used in error messages.

If packages[id] contains the completely imported package, that package can be used directly, and there is no need to call this function (but there is also no harm but for extra time used).

func IsNotFound

func IsNotFound(err error) bool

IsNotFound returns if err is a NotFoundError.

Types

type NotFoundError

type NotFoundError struct {
	// contains filtered or unexported fields
}

A NotFoundError is returned by Import when the package file cannot be found.

func (*NotFoundError) Error

func (e *NotFoundError) Error() string

func (*NotFoundError) ID

func (e *NotFoundError) ID() string

ID returns the package id created by FinkPkg for the missing package.

func (*NotFoundError) Path

func (e *NotFoundError) Path() string

Path returns the path argument passed to Import and FindPkg.

func (*NotFoundError) String

func (e *NotFoundError) String() string

String returns e formatted as 'NotFoundError{id: %s path: %s}' for debugging.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL