nim := ImageManifest(a) if err := nim.assertValid(); err != nil { return err } *im = nim return nil } func (im ImageManifest) MarshalJSON() ([]byte, error) { if err := im.assertValid(); err != nil { return nil, err } return json.Marshal(imageManifest(im)) } var imKindError = types.InvalidACKindError(ImageManifestKind) // assertValid performs extra assertions on an ImageManifest to ensure that // fields are set appropriately, etc. It is used exclusively when marshalling // and unmarshalling an ImageManifest. Most field-specific validation is // performed through the individual types being marshalled; assertValid() // should only deal with higher-level validation. func (im *ImageManifest) assertValid() error { if im.ACKind != ImageManifestKind { return imKindError } if im.ACVersion.Empty() { return errors.New(`acVersion must be set`) } if im.Name.Empty() { return errors.New(`name must be set`)
npm := PodManifest(p) if err := npm.assertValid(); err != nil { return err } *pm = npm return nil } func (pm PodManifest) MarshalJSON() ([]byte, error) { if err := pm.assertValid(); err != nil { return nil, err } return json.Marshal(podManifest(pm)) } var pmKindError = types.InvalidACKindError(PodManifestKind) // assertValid performs extra assertions on an PodManifest to // ensure that fields are set appropriately, etc. It is used exclusively when // marshalling and unmarshalling an PodManifest. Most // field-specific validation is performed through the individual types being // marshalled; assertValid() should only deal with higher-level validation. func (pm *PodManifest) assertValid() error { if pm.ACKind != PodManifestKind { return pmKindError } return nil } type AppList []RuntimeApp