(req contract.MemoryWriteRequest)
| 2483 | } |
| 2484 | |
| 2485 | func resolveMemoryWriteScope(req contract.MemoryWriteRequest) (memcontract.Scope, string, error) { |
| 2486 | content := strings.TrimSpace(req.Content) |
| 2487 | if content == "" { |
| 2488 | return "", "", NewMemoryValidationError(errors.New("content is required")) |
| 2489 | } |
| 2490 | |
| 2491 | scope, err := parseOptionalMemoryScope(req.Scope) |
| 2492 | if err != nil { |
| 2493 | return "", "", err |
| 2494 | } |
| 2495 | if scope == "" { |
| 2496 | header, err := memory.ParseHeader([]byte(content)) |
| 2497 | if err != nil { |
| 2498 | return "", "", err |
| 2499 | } |
| 2500 | scope, err = memcontract.DefaultScopeForType(header.Type) |
| 2501 | if err != nil { |
| 2502 | return "", "", NewMemoryValidationError(err) |
| 2503 | } |
| 2504 | } |
| 2505 | |
| 2506 | if scope == memcontract.ScopeWorkspace { |
| 2507 | workspace, err := resolveMemoryWorkspace(req.Workspace) |
| 2508 | if err != nil { |
| 2509 | return "", "", err |
| 2510 | } |
| 2511 | return scope, workspace, nil |
| 2512 | } |
| 2513 | |
| 2514 | return scope, "", nil |
| 2515 | } |
| 2516 | |
| 2517 | // ParseOptionalMemoryScope validates an optional memory scope value. |
| 2518 | func ParseOptionalMemoryScope(raw string) (memcontract.Scope, error) { |
no test coverage detected