Skip to content

Instantly share code, notes, and snippets.

@arnehormann
Created June 14, 2013 08:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arnehormann/5780257 to your computer and use it in GitHub Desktop.
Save arnehormann/5780257 to your computer and use it in GitHub Desktop.
*reflect.StructField
<!DOCTYPE html>
<html><head><title>Go: '*reflect.StructField'</title><style>
html { background-color: #fafafa; }
div[data-kind] {
box-sizing: border-box;
position: relative;
/* font */
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 300;
font-size: 16px;
line-height: 1.5em;
color: #444444;
/* defaults */
border-color: #eeeeee;
padding: 0.5em 0 0 0.5em;
/* enterprisify it a little */
border: none;
border-left: 1.5em solid;
border-top: 4px solid;
border-radius: 1em;
border-top-right-radius: 0;
}
div[data-kind]::before {
content: '[' attr(data-kind) ', ' attr(data-memsize) ' bytes]: ' attr(data-field) ' ' attr(data-type);
position: relative;
margin-left: 1em;
}
div[data-kind=int8] { border-color: hsl(180, 90%, 50%); }
div[data-kind=int16] { border-color: hsl(180, 90%, 45%); }
div[data-kind=int32] { border-color: hsl(180, 90%, 40%); }
div[data-kind=int64] { border-color: hsl(180, 90%, 35%); }
div[data-kind=int] { border-color: hsl(180, 75%, 38%); }
div[data-kind=uint8] { border-color: hsl(190, 90%, 50%); }
div[data-kind=uint16] { border-color: hsl(190, 90%, 45%); }
div[data-kind=uint32] { border-color: hsl(190, 90%, 40%); }
div[data-kind=uint64] { border-color: hsl(190, 90%, 35%); }
div[data-kind=uint] { border-color: hsl(190, 75%, 38%); }
div[data-kind=float32] { border-color: hsl(205, 70%, 40%); }
div[data-kind=float64] { border-color: hsl(205, 70%, 35%); }
div[data-kind=complex64] { border-color: hsl(215, 50%, 35%); }
div[data-kind=complex128] { border-color: hsl(215, 50%, 30%); }
div[data-kind=bool] { border-color: hsl(160, 70%, 35%); }
div[data-kind=ptr] { border-color: hsl(30, 50%, 60%); }
div[data-kind=uintptr] { border-color: hsl(20, 50%, 50%); }
div[data-kind="unsafe.Pointer"] { border-color: hsl(10, 90%, 50%); }
div[data-kind=array] { border-color: hsl(60, 90%, 45%); }
div[data-kind=slice] { border-color: hsl(60, 40%, 60%); }
div[data-kind=string] { border-color: hsl(120, 70%, 30%); }
div[data-kind=map] { border-color: hsl(75, 40%, 40%); }
div[data-kind=struct] { border-color: hsl(150, 10%, 45%); }
div[data-kind=interface] { border-color: hsl(240, 30%, 60%); }
div[data-kind=func] { border-color: hsl(270, 40%, 60%); }
div[data-kind=chan] { border-color: hsl(300, 40%, 30%); }
.fold * { display: none; }
.fold::after { content: ' [+]'; }
</style>
</head><body><form method=post action="/html"><button type="submit">html</button></form><hr><div data-kind="ptr" data-type="*reflect.StructField" data-memsize="8" data-typeid="0"><div data-kind="struct" data-type="reflect.StructField" data-memsize="104" data-typeid="1"><div data-kind="string" data-type="string" data-memsize="16" data-typeid="7" data-field="Name" data-index="[0]" data-offset="0" data-tag=""></div><div data-kind="string" data-type="string" data-memsize="16" data-typeid="7" data-funcval="ret" data-field="PkgPath" data-index="[1]" data-offset="16" data-tag=""></div><div data-kind="interface" data-type="reflect.Type" data-memsize="16" data-typeid="6" data-funcval="ret" data-field="Type" data-index="[2]" data-offset="32" data-tag=""><div data-kind="func" data-type="func() int" data-memsize="8" data-typeid="13" data-field="Align" data-index="[-1 0]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func(reflect.Type) bool" data-memsize="8" data-typeid="19" data-funcval="ret" data-field="AssignableTo" data-index="[-1 1]" data-offset="0" data-tag="" data-argcount="1" data-retcount="1"></div><div data-kind="func" data-type="func() int" data-memsize="8" data-typeid="13" data-funcval="ret" data-field="Bits" data-index="[-1 2]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func() reflect.ChanDir" data-memsize="8" data-typeid="24" data-funcval="ret" data-field="ChanDir" data-index="[-1 3]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"><div data-kind="int" data-type="reflect.ChanDir" data-memsize="8" data-typeid="25" data-funcval="ret"></div></div><div data-kind="func" data-type="func(reflect.Type) bool" data-memsize="8" data-typeid="19" data-funcval="ret" data-field="ConvertibleTo" data-index="[-1 4]" data-offset="0" data-tag="" data-argcount="1" data-retcount="1"></div><div data-kind="func" data-type="func() reflect.Type" data-memsize="8" data-typeid="17" data-funcval="ret" data-field="Elem" data-index="[-1 5]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func(int) reflect.StructField" data-memsize="8" data-typeid="23" data-funcval="ret" data-field="Field" data-index="[-1 6]" data-offset="0" data-tag="" data-argcount="1" data-retcount="1"><div data-kind="int" data-type="int" data-memsize="8" data-typeid="26" data-funcval="arg"></div><div data-kind="struct" data-type="reflect.StructField" data-memsize="104" data-typeid="1" data-funcval="ret"></div></div><div data-kind="func" data-type="func() int" data-memsize="8" data-typeid="13" data-funcval="ret" data-field="FieldAlign" data-index="[-1 7]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func([]int) reflect.StructField" data-memsize="8" data-typeid="22" data-funcval="ret" data-field="FieldByIndex" data-index="[-1 8]" data-offset="0" data-tag="" data-argcount="1" data-retcount="1"><div data-kind="slice" data-type="[]int" data-memsize="24" data-typeid="3" data-funcval="arg"></div><div data-kind="struct" data-type="reflect.StructField" data-memsize="104" data-typeid="1" data-funcval="ret"></div></div><div data-kind="func" data-type="func(string) (reflect.StructField, bool)" data-memsize="8" data-typeid="21" data-funcval="ret" data-field="FieldByName" data-index="[-1 9]" data-offset="0" data-tag="" data-argcount="1" data-retcount="2"><div data-kind="string" data-type="string" data-memsize="16" data-typeid="7" data-funcval="arg"></div><div data-kind="struct" data-type="reflect.StructField" data-memsize="104" data-typeid="1" data-funcval="ret"></div><div data-kind="bool" data-type="bool" data-memsize="1" data-typeid="2" data-funcval="ret"></div></div><div data-kind="func" data-type="func(func(string) bool) (reflect.StructField, bool)" data-memsize="8" data-typeid="20" data-funcval="ret" data-field="FieldByNameFunc" data-index="[-1 10]" data-offset="0" data-tag="" data-argcount="1" data-retcount="2"><div data-kind="func" data-type="func(string) bool" data-memsize="8" data-typeid="27" data-funcval="arg" data-argcount="1" data-retcount="1"><div data-kind="string" data-type="string" data-memsize="16" data-typeid="7" data-funcval="arg"></div><div data-kind="bool" data-type="bool" data-memsize="1" data-typeid="2" data-funcval="ret"></div></div><div data-kind="struct" data-type="reflect.StructField" data-memsize="104" data-typeid="1" data-funcval="ret"></div><div data-kind="bool" data-type="bool" data-memsize="1" data-typeid="2" data-funcval="ret"></div></div><div data-kind="func" data-type="func(reflect.Type) bool" data-memsize="8" data-typeid="19" data-funcval="ret" data-field="Implements" data-index="[-1 11]" data-offset="0" data-tag="" data-argcount="1" data-retcount="1"><div data-kind="interface" data-type="reflect.Type" data-memsize="16" data-typeid="6" data-funcval="arg"></div><div data-kind="bool" data-type="bool" data-memsize="1" data-typeid="2" data-funcval="ret"></div></div><div data-kind="func" data-type="func(int) reflect.Type" data-memsize="8" data-typeid="12" data-funcval="ret" data-field="In" data-index="[-1 12]" data-offset="0" data-tag="" data-argcount="1" data-retcount="1"></div><div data-kind="func" data-type="func() bool" data-memsize="8" data-typeid="18" data-funcval="ret" data-field="IsVariadic" data-index="[-1 13]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"><div data-kind="bool" data-type="bool" data-memsize="1" data-typeid="2" data-funcval="ret"></div></div><div data-kind="func" data-type="func() reflect.Type" data-memsize="8" data-typeid="17" data-funcval="ret" data-field="Key" data-index="[-1 14]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"><div data-kind="interface" data-type="reflect.Type" data-memsize="16" data-typeid="6" data-funcval="ret"></div></div><div data-kind="func" data-type="func() reflect.Kind" data-memsize="8" data-typeid="16" data-funcval="ret" data-field="Kind" data-index="[-1 15]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"><div data-kind="uint" data-type="reflect.Kind" data-memsize="8" data-typeid="28" data-funcval="ret"></div></div><div data-kind="func" data-type="func() int" data-memsize="8" data-typeid="13" data-funcval="ret" data-field="Len" data-index="[-1 16]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func(int) reflect.Method" data-memsize="8" data-typeid="15" data-funcval="ret" data-field="Method" data-index="[-1 17]" data-offset="0" data-tag="" data-argcount="1" data-retcount="1"><div data-kind="int" data-type="int" data-memsize="8" data-typeid="26" data-funcval="arg"></div><div data-kind="struct" data-type="reflect.Method" data-memsize="80" data-typeid="29" data-funcval="ret"><div data-kind="string" data-type="string" data-memsize="16" data-typeid="7" data-funcval="ret" data-field="Name" data-index="[0]" data-offset="0" data-tag=""></div><div data-kind="string" data-type="string" data-memsize="16" data-typeid="7" data-funcval="ret" data-field="PkgPath" data-index="[1]" data-offset="16" data-tag=""></div><div data-kind="interface" data-type="reflect.Type" data-memsize="16" data-typeid="6" data-funcval="ret" data-field="Type" data-index="[2]" data-offset="32" data-tag=""></div><div data-kind="struct" data-type="reflect.Value" data-memsize="24" data-typeid="30" data-funcval="ret" data-field="Func" data-index="[3]" data-offset="48" data-tag=""><div data-kind="ptr" data-type="*reflect.rtype" data-memsize="8" data-typeid="33" data-field="typ" data-index="[0]" data-offset="0" data-tag=""><div data-kind="struct" data-type="reflect.rtype" data-memsize="56" data-typeid="34"><div data-kind="uintptr" data-type="uintptr" data-memsize="8" data-typeid="4" data-field="size" data-index="[0]" data-offset="0" data-tag=""></div><div data-kind="uint32" data-type="uint32" data-memsize="4" data-typeid="39" data-funcval="ret" data-field="hash" data-index="[1]" data-offset="8" data-tag=""></div><div data-kind="uint8" data-type="uint8" data-memsize="1" data-typeid="38" data-funcval="ret" data-field="_" data-index="[2]" data-offset="12" data-tag=""></div><div data-kind="uint8" data-type="uint8" data-memsize="1" data-typeid="38" data-funcval="ret" data-field="align" data-index="[3]" data-offset="13" data-tag=""></div><div data-kind="uint8" data-type="uint8" data-memsize="1" data-typeid="38" data-funcval="ret" data-field="fieldAlign" data-index="[4]" data-offset="14" data-tag=""></div><div data-kind="uint8" data-type="uint8" data-memsize="1" data-typeid="38" data-funcval="ret" data-field="kind" data-index="[5]" data-offset="15" data-tag=""></div><div data-kind="ptr" data-type="*uintptr" data-memsize="8" data-typeid="37" data-funcval="ret" data-field="alg" data-index="[6]" data-offset="16" data-tag=""><div data-kind="uintptr" data-type="uintptr" data-memsize="8" data-typeid="4"></div></div><div data-kind="unsafe.Pointer" data-type="unsafe.Pointer" data-memsize="8" data-typeid="32" data-funcval="ret" data-field="gc" data-index="[7]" data-offset="24" data-tag=""></div><div data-kind="ptr" data-type="*string" data-memsize="8" data-typeid="36" data-funcval="ret" data-field="string" data-index="[8]" data-offset="32" data-tag=""><div data-kind="string" data-type="string" data-memsize="16" data-typeid="7" data-funcval="ret"></div></div><div data-kind="ptr" data-type="*reflect.uncommonType" data-memsize="8" data-typeid="35" data-funcval="ret" data-field="uncommonType" data-index="[9]" data-offset="40" data-tag=""><div data-kind="struct" data-type="reflect.uncommonType" data-memsize="40" data-typeid="40" data-funcval="ret"><div data-kind="ptr" data-type="*string" data-memsize="8" data-typeid="36" data-field="name" data-index="[0]" data-offset="0" data-tag=""></div><div data-kind="ptr" data-type="*string" data-memsize="8" data-typeid="36" data-funcval="ret" data-field="pkgPath" data-index="[1]" data-offset="8" data-tag=""></div><div data-kind="slice" data-type="[]reflect.method" data-memsize="24" data-typeid="41" data-funcval="ret" data-field="methods" data-index="[2]" data-offset="16" data-tag=""><div data-kind="struct" data-type="reflect.method" data-memsize="48" data-typeid="42"><div data-kind="ptr" data-type="*string" data-memsize="8" data-typeid="36" data-field="name" data-index="[0]" data-offset="0" data-tag=""></div><div data-kind="ptr" data-type="*string" data-memsize="8" data-typeid="36" data-funcval="ret" data-field="pkgPath" data-index="[1]" data-offset="8" data-tag=""></div><div data-kind="ptr" data-type="*reflect.rtype" data-memsize="8" data-typeid="33" data-funcval="ret" data-field="mtyp" data-index="[2]" data-offset="16" data-tag=""></div><div data-kind="ptr" data-type="*reflect.rtype" data-memsize="8" data-typeid="33" data-funcval="ret" data-field="typ" data-index="[3]" data-offset="24" data-tag=""></div><div data-kind="unsafe.Pointer" data-type="unsafe.Pointer" data-memsize="8" data-typeid="32" data-funcval="ret" data-field="ifn" data-index="[4]" data-offset="32" data-tag=""></div><div data-kind="unsafe.Pointer" data-type="unsafe.Pointer" data-memsize="8" data-typeid="32" data-funcval="ret" data-field="tfn" data-index="[5]" data-offset="40" data-tag=""></div></div></div></div></div><div data-kind="ptr" data-type="*reflect.rtype" data-memsize="8" data-typeid="33" data-funcval="ret" data-field="ptrToThis" data-index="[10]" data-offset="48" data-tag=""></div></div></div><div data-kind="unsafe.Pointer" data-type="unsafe.Pointer" data-memsize="8" data-typeid="32" data-funcval="ret" data-field="val" data-index="[1]" data-offset="8" data-tag=""></div><div data-kind="uintptr" data-type="reflect.flag" data-memsize="8" data-typeid="31" data-funcval="ret" data-field="flag" data-index="[2]" data-offset="16" data-tag=""></div></div><div data-kind="int" data-type="int" data-memsize="8" data-typeid="26" data-funcval="ret" data-field="Index" data-index="[4]" data-offset="72" data-tag=""></div></div></div><div data-kind="func" data-type="func(string) (reflect.Method, bool)" data-memsize="8" data-typeid="14" data-funcval="ret" data-field="MethodByName" data-index="[-1 18]" data-offset="0" data-tag="" data-argcount="1" data-retcount="2"><div data-kind="string" data-type="string" data-memsize="16" data-typeid="7" data-funcval="arg"></div><div data-kind="struct" data-type="reflect.Method" data-memsize="80" data-typeid="29" data-funcval="ret"></div><div data-kind="bool" data-type="bool" data-memsize="1" data-typeid="2" data-funcval="ret"></div></div><div data-kind="func" data-type="func() string" data-memsize="8" data-typeid="10" data-funcval="ret" data-field="Name" data-index="[-1 19]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func() int" data-memsize="8" data-typeid="13" data-funcval="ret" data-field="NumField" data-index="[-1 20]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func() int" data-memsize="8" data-typeid="13" data-funcval="ret" data-field="NumIn" data-index="[-1 21]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func() int" data-memsize="8" data-typeid="13" data-funcval="ret" data-field="NumMethod" data-index="[-1 22]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func() int" data-memsize="8" data-typeid="13" data-funcval="ret" data-field="NumOut" data-index="[-1 23]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"><div data-kind="int" data-type="int" data-memsize="8" data-typeid="26" data-funcval="ret"></div></div><div data-kind="func" data-type="func(int) reflect.Type" data-memsize="8" data-typeid="12" data-funcval="ret" data-field="Out" data-index="[-1 24]" data-offset="0" data-tag="" data-argcount="1" data-retcount="1"><div data-kind="int" data-type="int" data-memsize="8" data-typeid="26" data-funcval="arg"></div><div data-kind="interface" data-type="reflect.Type" data-memsize="16" data-typeid="6" data-funcval="ret"></div></div><div data-kind="func" data-type="func() string" data-memsize="8" data-typeid="10" data-funcval="ret" data-field="PkgPath" data-index="[-1 25]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"></div><div data-kind="func" data-type="func() uintptr" data-memsize="8" data-typeid="11" data-funcval="ret" data-field="Size" data-index="[-1 26]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"><div data-kind="uintptr" data-type="uintptr" data-memsize="8" data-typeid="4" data-funcval="ret"></div></div><div data-kind="func" data-type="func() string" data-memsize="8" data-typeid="10" data-funcval="ret" data-field="String" data-index="[-1 27]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"><div data-kind="string" data-type="string" data-memsize="16" data-typeid="7" data-funcval="ret"></div></div><div data-kind="func" data-type="func() *reflect.rtype" data-memsize="8" data-typeid="9" data-funcval="ret" data-field="common" data-index="[-1 28]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"><div data-kind="ptr" data-type="*reflect.rtype" data-memsize="8" data-typeid="33" data-funcval="ret"></div></div><div data-kind="func" data-type="func() *reflect.uncommonType" data-memsize="8" data-typeid="8" data-funcval="ret" data-field="uncommon" data-index="[-1 29]" data-offset="0" data-tag="" data-argcount="0" data-retcount="1"><div data-kind="ptr" data-type="*reflect.uncommonType" data-memsize="8" data-typeid="35" data-funcval="ret"></div></div></div><div data-kind="string" data-type="reflect.StructTag" data-memsize="16" data-typeid="5" data-funcval="ret" data-field="Tag" data-index="[3]" data-offset="48" data-tag=""></div><div data-kind="uintptr" data-type="uintptr" data-memsize="8" data-typeid="4" data-funcval="ret" data-field="Offset" data-index="[4]" data-offset="64" data-tag=""></div><div data-kind="slice" data-type="[]int" data-memsize="24" data-typeid="3" data-funcval="ret" data-field="Index" data-index="[5]" data-offset="72" data-tag=""><div data-kind="int" data-type="int" data-memsize="8" data-typeid="26" data-funcval="ret"></div></div><div data-kind="bool" data-type="bool" data-memsize="1" data-typeid="2" data-funcval="ret" data-field="Anonymous" data-index="[6]" data-offset="96" data-tag=""></div></div></div>
<script>
(function(tags, tag){
function onChild(e) {
e.stopPropagation()
}
function onParent(e) {
e.stopPropagation()
this.className = this.className == "fold" ? "" : "fold"
}
for (var i = 0; i < tags.length; i++) {
tag = tags[i]
tag.onclick = tag.children.length === 0 ? onChild : onParent
}
})(document.getElementsByTagName('div'))
</script></body></html>
@arnehormann
Copy link
Author

Golang *reflect.StructField as viewed by html-export from typebrowser.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment