func writeTransitions(ts system.TransitionSystem, labelNumberer *system.LabelNumberer, transitionsFilename string) { serializer, ok := ts.(system.TransitionSerializer) if !ok { log.Fatal("Transition system does not implement transition serialization") } f, err := os.Create(transitionsFilename) common.ExitIfError("Cannot create transition file:", err) defer f.Close() err = labelNumberer.WriteLabelNumberer(f, serializer) common.ExitIfError("Cannot create label file:", err) }
func ReadTransitionsOrExit(filename string, ts system.TransitionSystem) *system.LabelNumberer { f, err := os.Open(filename) ExitIfError("Cannot open transition file:", err) defer f.Close() var numberer system.LabelNumberer serializer, ok := ts.(system.TransitionSerializer) if !ok { log.Fatal("Transition system does not implement transition serialization") } err = numberer.Read(f, serializer) ExitIfError("Cannot deserialize label numberer:", err) return &numberer }
func ReadTransitions(filename string, ts system.TransitionSystem) (*system.LabelNumberer, error) { f, err := os.Open(filename) if err != nil { return nil, err } defer f.Close() var numberer system.LabelNumberer serializer, ok := ts.(system.TransitionSerializer) if !ok { return nil, errors.New("Transition system does not implement transition serialization") } if err := numberer.Read(f, serializer); err == nil { return &numberer, nil } return nil, err }