------------------------------------------------------ Persist persists a basic segment, and allows a segment to meet the SegmentPersister interface.
(file File, options *StoreOptions)
| 604 | // Persist persists a basic segment, and allows a segment to meet the |
| 605 | // SegmentPersister interface. |
| 606 | func (a *segment) Persist(file File, options *StoreOptions) (rv SegmentLoc, err error) { |
| 607 | finfo, err := file.Stat() |
| 608 | if err != nil { |
| 609 | return rv, err |
| 610 | } |
| 611 | |
| 612 | persistKind := DefaultPersistKind |
| 613 | if options.PersistKind != "" { |
| 614 | persistKind = options.PersistKind |
| 615 | } |
| 616 | |
| 617 | segmentPersister, exists := SegmentPersisters[persistKind] |
| 618 | if !exists || segmentPersister == nil { |
| 619 | return rv, fmt.Errorf("store: unknown PersistKind: %+v", persistKind) |
| 620 | } |
| 621 | |
| 622 | return segmentPersister(a, file, finfo.Size(), nil) |
| 623 | } |
| 624 | |
| 625 | // ------------------------------------------------------ |
| 626 |