code: func NewObjectScanner() (*ObjectScanner, error) {
  	gitdir, err := GitCommonDir()
  	if err != nil {
  		return nil, err
  	}
  
  	gitobj, err := gitobj.FromFilesystem(filepath.Join(gitdir, "objects"), "")
  	if err != nil {
  		return nil, err
  	}
  
  	return NewObjectScannerFrom(gitobj), nil
  }
docs: // NewObjectScanner constructs a new instance of the `*ObjectScanner` type and
  // returns it. It backs the ObjectScanner with an invocation of the `git
  // cat-file --batch` command. If any errors were encountered while starting that
  // command, they will be returned immediately.
  //
  // Otherwise, an `*ObjectScanner` is returned with no error.