|
767 | 767 |
|
768 | 768 | <span class="cov6" title="20">specsStack := stack.New[typedPlugin]() |
769 | 769 |
|
770 | | - for pluginType, pluginValue := range seed.plugins </span><span class="cov7" title="40">{ |
| 770 | + for pluginType, pluginValue := range seed.plugins </span><span class="cov7" title="41">{ |
771 | 771 | specsStack.Push(typedPlugin{ |
772 | 772 | Plugin: pluginValue, |
773 | 773 | Type: pluginType, |
|
816 | 816 | v reflect.Value, |
817 | 817 | plugins map[reflect.Type]testoplugin.Plugin, |
818 | 818 | specs *stack.Stack[typedPlugin], |
819 | | -) <span class="cov9" title="134">{ |
| 819 | +) <span class="cov9" title="135">{ |
820 | 820 | if plugin, ok := plugins[v.Type().Elem()]; ok </span><span class="cov8" title="75">{ |
821 | 821 | elem := v.Elem() |
822 | 822 |
|
|
837 | 837 | })</span> |
838 | 838 | } |
839 | 839 |
|
840 | | - <span class="cov9" title="134">v = reflectutil.Elem(v) |
| 840 | + <span class="cov9" title="135">v = reflectutil.Elem(v) |
841 | 841 |
|
842 | 842 | if v.Kind() != reflect.Struct </span><span class="cov0" title="0">{ |
843 | 843 | return |
844 | 844 | }</span> |
845 | 845 |
|
846 | 846 | // special case - we do not go deeper than that. |
847 | | - <span class="cov9" title="134">if v.Type() == reflect.TypeFor[T]() </span><span class="cov8" title="72">{ |
| 847 | + <span class="cov9" title="135">if v.Type() == reflect.TypeFor[T]() </span><span class="cov8" title="73">{ |
848 | 848 | return |
849 | 849 | }</span> |
850 | 850 |
|
|
957 | 957 | // Nested pointers are also supported - e.g. given "****value" it will return "value". |
958 | 958 | // |
959 | 959 | // Non-pointer values will be returned as is. |
960 | | -func Elem[T canElem[T]](v T) T <span class="cov8" title="199">{ |
961 | | - for v.Kind() == reflect.Pointer </span><span class="cov8" title="267">{ |
| 960 | +func Elem[T canElem[T]](v T) T <span class="cov8" title="200">{ |
| 961 | + for v.Kind() == reflect.Pointer </span><span class="cov8" title="268">{ |
962 | 962 | v = v.Elem() |
963 | 963 | }</span> |
964 | 964 |
|
965 | | - <span class="cov8" title="199">return v</span> |
| 965 | + <span class="cov8" title="200">return v</span> |
966 | 966 | } |
967 | 967 |
|
968 | 968 | // NameOf returns name of the underlying type T. |
|
1106 | 1106 | return len(s.values) |
1107 | 1107 | }</span> |
1108 | 1108 |
|
1109 | | -func (s *Stack[T]) Push(v T) <span class="cov9" title="121">{ |
| 1109 | +func (s *Stack[T]) Push(v T) <span class="cov9" title="122">{ |
1110 | 1110 | s.values = append(s.values, v) |
1111 | 1111 | }</span> |
1112 | 1112 |
|
|
0 commit comments