func emit()

in api-generator/main.go [95:130]


func emit(outputPath string, output *output) error {
	for _, ty := range output.Types {
		typePath := strings.Replace(outputPath, "{name}", ty.Name, -1)
		out, err := proto.Marshal(ty)
		if err != nil {
			return errors.Wrapf(err, "could not marshal type %s", ty.Name)
		}
		if err := writeData(typePath, out); err != nil {
			return errors.Wrapf(err, "could not write type %s to %s", ty.Name, typePath)
		}
	}

	for _, apiTy := range output.Apis {
		typePath := strings.Replace(outputPath, "{name}", apiTy.Name, -1)
		out, err := proto.Marshal(apiTy)
		if err != nil {
			return errors.Wrapf(err, "could not marshal API %s", apiTy.Name)
		}
		if err := writeData(typePath, out); err != nil {
			return errors.Wrapf(err, "could not write API %s to %s", apiTy.Name, typePath)
		}
	}

	for _, enumTy := range output.Enums {
		typePath := strings.Replace(outputPath, "{name}", enumTy.Name, -1)
		out, err := proto.Marshal(enumTy)
		if err != nil {
			return errors.Wrapf(err, "could not marshal enum %s", enumTy.Name)
		}
		if err := writeData(typePath, out); err != nil {
			return errors.Wrapf(err, "could not write enum %s to %s", enumTy.Name, typePath)
		}
	}

	return nil
}