ref: 21e2f19ae2a3baa744b6bbed997f757f0af7e01f
dir: /refstore/files/transaction_resolve_target.go/
package files
import "fmt"
func (tx *Transaction) resolveTarget(op txOp) (resolvedWriteTarget, error) {
switch op.kind {
case txCreate:
return tx.resolveOrdinaryTarget(op.name, true)
case txUpdate, txDelete, txVerify:
return tx.resolveOrdinaryTarget(op.name, false)
case txCreateSymbolic, txUpdateSymbolic, txDeleteSymbolic, txVerifySymbolic:
refState, err := tx.directRead(op.name)
if err != nil {
return resolvedWriteTarget{}, err
}
return resolvedWriteTarget{name: op.name, loc: tx.store.loosePath(op.name), ref: refState}, nil
default:
return resolvedWriteTarget{}, fmt.Errorf("refstore/files: unsupported transaction operation %d", op.kind)
}
}