package tplCmd import ( `context` `net` `net/netip` `text/template` `go4.org/netipx` ) var ( // Funcs added externally to CombinedTplFuncMap will override any of the funcs defined here or in sprig. CombinedTplFuncMap template.FuncMap = make(template.FuncMap) // TODO: github.com/vishvananda/netlink funcs? TplFuncs = template.FuncMap{ "GetCtx": context.Background, // stdlib net funcs; everything missing you can get from a net.Resolver (see GetResolver/TplGetResolver) "CIDRMask": net.CIDRMask, "InterfaceAddrs": net.InterfaceAddrs, "InterfaceByIndex": net.InterfaceByIndex, "InterfaceByName": net.InterfaceByName, "IPv4": net.IPv4, "IPv4Mask": net.IPv4Mask, "JoinHostPort": net.JoinHostPort, "ParseIP": net.ParseIP, "ParseMAC": net.ParseMAC, "ResolveIPAddr": net.ResolveIPAddr, "ResolveTCPAddr": net.ResolveTCPAddr, "ResolveUDPAddr": net.ResolveUDPAddr, "ResolveUnixAddr": net.ResolveUnixAddr, "TCPAddrFromAddrPort": net.TCPAddrFromAddrPort, "UDPAddrFromAddrPort": net.UDPAddrFromAddrPort, // stdlib net/netip funcs "AddrFrom16": netip.AddrFrom16, "AddrFrom4": netip.AddrFrom4, "AddrFromSlice": netip.AddrFromSlice, "AddrPortFrom": netip.AddrPortFrom, "IPv4Unspecified": netip.IPv4Unspecified, "IPv6LinkLocalAllNodes": netip.IPv6LinkLocalAllNodes, "IPv6LinkLocalAllRouters": netip.IPv6LinkLocalAllRouters, "IPv6Loopback": netip.IPv6Loopback, "IPv6Unspecified": netip.IPv6Unspecified, "ParseAddr": netip.ParseAddr, "ParseAddrPort": netip.ParseAddrPort, "ParsePrefix": netip.ParsePrefix, "PrefixFrom": netip.PrefixFrom, // go4.org/netipx "AddrIPNet": netipx.AddrIPNet, "ComparePrefix": netipx.ComparePrefix, "FromStdAddr": netipx.FromStdAddr, "FromStdIP": netipx.FromStdIP, "FromStdIPNet": netipx.FromStdIPNet, "IPRangeFrom": netipx.IPRangeFrom, "ParseIPRange": netipx.ParseIPRange, "ParsePrefixOrAddr": netipx.ParsePrefixOrAddr, "PrefixIPNet": netipx.PrefixIPNet, "PrefixLastIP": netipx.PrefixLastIP, "RangeOfPrefix": netipx.RangeOfPrefix, // Custom-defined/compat wrappers "GetIPSetBuilder": TplGetIPSetBuilder, "GetResolver": TplGetResolver, "SplitHostPortHost": TplSplitHostPortHost, // net.SplitHostPort "SplitHostPortPort": TplSplitHostPortPort, // net.SplitHostPort "ToCidrHost": TplToCidrHost, // net.ParseCIDR "ToCidrNet": TplToCidrNet, // net.ParseCIDR // Weak coercers and other funcs. "IsNil": TplIsNil, "ToBool": TplToBool, "ToFloat": TplToFloat, "ToInt": TplToInt, "ToMap": TplToMap, "ToString": TplToString, "ToUint": TplToUint, // Host information "GetDefaultIface": GetDefaultIface, "GetSITIface": GetSITIface, } )