summaryrefslogtreecommitdiff
path: root/populatePackagePB.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-10 15:36:29 -0500
committerJeff Carr <[email protected]>2025-10-10 16:22:21 -0500
commitf6592833fcd233a9c1812fe49c83d770460a1544 (patch)
treef9dd1118b38bdc38def41bab60e8555a1929e3d4 /populatePackagePB.go
parent2b2c2960641a8ad47682bfc362aeea0fdaeb8e0b (diff)
new home for DebInfo pb codev0.0.9v0.0.8
Diffstat (limited to 'populatePackagePB.go')
-rw-r--r--populatePackagePB.go51
1 files changed, 0 insertions, 51 deletions
diff --git a/populatePackagePB.go b/populatePackagePB.go
index 34127a4..78eb6a3 100644
--- a/populatePackagePB.go
+++ b/populatePackagePB.go
@@ -1,9 +1,6 @@
package debian
import (
- "errors"
- "fmt"
-
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/reflect/protoreflect"
@@ -37,54 +34,6 @@ func SetString(pb proto.Message, varname string, varvalue string) (bool, error)
return true, nil
}
-func SetDebInfoString(pb proto.Message, varname string, varvalue string) error {
- // 1. Get the reflection interface for the top-level message (e.g., Package).
- msg := pb.ProtoReflect()
- descriptor := msg.Descriptor()
-
- // 2. Find the FieldDescriptor for the nested message field (named "debInfo").
- // This is the corrected line: call .Fields().ByName().
- debInfoFieldDescriptor := descriptor.Fields().ByName("debInfo")
- if debInfoFieldDescriptor == nil {
- return fmt.Errorf("field 'debInfo' not found in message %s", descriptor.FullName())
- }
-
- // 3. From the field descriptor, get the MessageDescriptor for the DebInfo type.
- // This gives us the "schema" for the DebInfo message.
- debInfoMsgDescriptor := debInfoFieldDescriptor.Message()
- if debInfoMsgDescriptor == nil {
- // This would happen if the 'debInfo' field was not a message type.
- // return ErrFieldNotMessage
- return errors.New("debInfo failed to turn into a message?")
- }
-
- // 4. Now, find the FieldDescriptor for the target string field (varname)
- // WITHIN the DebInfo message's schema.
- fieldName := protoreflect.Name(varname)
- fieldDescriptor := debInfoMsgDescriptor.Fields().ByName(fieldName)
- if fieldDescriptor == nil {
- return fmt.Errorf("field '%s' not found in nested message 'debInfo'", varname)
- }
-
- // 5. Validate that the target field is a string.
- if fieldDescriptor.Kind() != protoreflect.StringKind {
- return config.ErrProtoVarNotString
- }
-
- // 6. CRITICAL STEP: Get a mutable reference to the actual nested DebInfo message.
- // msg.Mutable() is perfect for this. It will:
- // a) Get the existing DebInfo message if it's already been set.
- // b) Create a NEW, empty DebInfo message if it's currently nil.
- // Then, we get the reflection interface for that nested message.
- debInfoMsg := msg.Mutable(debInfoFieldDescriptor).Message()
-
- // 7. Prepare the value and SET it on the nested message.
- valueToSet := protoreflect.ValueOfString(varvalue)
- debInfoMsg.Set(fieldDescriptor, valueToSet)
-
- return nil
-}
-
/*
msg := pb.ProtoReflect() // This is the entry point to the reflection API.