ParseHeader decodes and validates memory frontmatter from a raw document.
(content []byte)
| 9 | |
| 10 | // ParseHeader decodes and validates memory frontmatter from a raw document. |
| 11 | func ParseHeader(content []byte) (memcontract.Header, error) { |
| 12 | var header memcontract.Header |
| 13 | |
| 14 | if _, err := parseFrontmatter(content, &header); err != nil { |
| 15 | return memcontract.Header{}, fmt.Errorf( |
| 16 | "memory: parse frontmatter: %w", |
| 17 | fmt.Errorf("%w: %v", ErrValidation, err), |
| 18 | ) |
| 19 | } |
| 20 | if err := header.Validate(); err != nil { |
| 21 | return memcontract.Header{}, fmt.Errorf( |
| 22 | "memory: validate frontmatter: %w", |
| 23 | fmt.Errorf("%w: %v", ErrValidation, err), |
| 24 | ) |
| 25 | } |
| 26 | |
| 27 | return header, nil |
| 28 | } |
| 29 | |
| 30 | // ConsolidationLockPath returns the canonical lock path for a global memory directory. |
| 31 | func ConsolidationLockPath(globalDir string) string { |