(kind FieldKind, fieldPtr unsafe.Pointer, opt optionalInfo, value T)
| 853 | } |
| 854 | |
| 855 | func storeFieldValue[T any](kind FieldKind, fieldPtr unsafe.Pointer, opt optionalInfo, value T) { |
| 856 | switch kind { |
| 857 | case FieldKindPointer: |
| 858 | ptr := *(**T)(fieldPtr) |
| 859 | if ptr == nil { |
| 860 | ptr = new(T) |
| 861 | *(**T)(fieldPtr) = ptr |
| 862 | } |
| 863 | *ptr = value |
| 864 | case FieldKindOptional: |
| 865 | *(*bool)(unsafe.Add(fieldPtr, opt.hasOffset)) = true |
| 866 | *(*T)(unsafe.Add(fieldPtr, opt.valueOffset)) = value |
| 867 | default: |
| 868 | *(*T)(fieldPtr) = value |
| 869 | } |
| 870 | } |
| 871 | |
| 872 | func clearFieldValue(kind FieldKind, fieldPtr unsafe.Pointer, opt optionalInfo) { |
| 873 | switch kind { |
no test coverage detected