// Code generated by the FlatBuffers compiler. DO NOT EDIT.

package NamespaceB

import (
	"strconv"

	flatbuffers "github.com/google/flatbuffers/go"

	NamespaceA__NamespaceB "NamespaceA/NamespaceB"
)

type UnionInNestedNST struct {
	Type UnionInNestedNS
	Value interface{}
}

func (t *UnionInNestedNST) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
	if t == nil {
		return 0
	}
	switch t.Type {
	case UnionInNestedNSTableInNestedNS:
		return t.Value.(*NamespaceA__NamespaceB.TableInNestedNST).Pack(builder)
	}
	return 0
}

func (rcv UnionInNestedNS) UnPack(table flatbuffers.Table) *UnionInNestedNST {
	switch rcv {
	case UnionInNestedNSTableInNestedNS:
		x := TableInNestedNS{_tab: table}
		return &NamespaceA__NamespaceB.UnionInNestedNST{ Type: UnionInNestedNSTableInNestedNS, Value: x.UnPack() }
	}
	return nil
}
