// Code generated by ndpgen. DO NOT EDIT. // // This file provides stub implementations for non-WASM platforms. // It allows Go plugins to compile and run tests outside of WASM, // but the actual functionality is only available in WASM builds. // //go:build !wasip1 package {{.Package}} {{- /* Generate type alias definitions */ -}} {{- range .Capability.TypeAliases}} {{- if .Doc}} {{formatDoc .Doc}} {{- end}} type {{.Name}} {{.Type}} {{- end}} {{- /* Generate const definitions */ -}} {{- range .Capability.Consts}} {{- if .Values}} const ( {{- $type := .Type}} {{- range $i, $v := .Values}} {{- if $v.Doc}} {{formatDoc $v.Doc | indent 1}} {{- end}} {{- if $type}} {{$v.Name}} {{$type}} = {{$v.Value}} {{- else}} {{$v.Name}} = {{$v.Value}} {{- end}} {{- end}} ) {{- end}} {{- end}} {{- /* Generate Error() methods for string type aliases with const values (implements error interface) */ -}} {{- $consts := .Capability.Consts}} {{- range .Capability.TypeAliases}} {{- if eq .Type "string"}} {{- $typeName := .Name}} {{- range $consts}} {{- if eq .Type $typeName}} // Error implements the error interface for {{$typeName}}. func (e {{$typeName}}) Error() string { return string(e) } {{- end}} {{- end}} {{- end}} {{- end}} {{- /* Generate struct definitions */ -}} {{- range .Capability.Structs}} {{- if .Doc}} {{formatDoc .Doc}} {{- else}} // {{.Name}} represents the {{.Name}} data structure. {{- end}} type {{.Name}} struct { {{- range .Fields}} {{- if .Doc}} {{formatDoc .Doc | indent 1}} {{- end}} {{.Name}} {{.Type}} `json:"{{.JSONTag}}{{if .OmitEmpty}},omitempty{{end}}"` {{- end}} } {{- end}} {{- /* Generate main interface based on required flag */ -}} {{if .Capability.Required}} // {{agentName .Capability}} requires all methods to be implemented. {{- if .Capability.Doc}} {{formatDoc .Capability.Doc}} {{- end}} type {{agentName .Capability}} interface { {{- range .Capability.Methods}} // {{.Name}}{{if .Doc}} - {{.Doc}}{{end}} {{- if and .HasInput .HasOutput}} {{.Name}}({{.Input.Type}}) ({{.Output.Type}}, error) {{- else if .HasInput}} {{.Name}}({{.Input.Type}}) error {{- else if .HasOutput}} {{.Name}}() ({{.Output.Type}}, error) {{- else}} {{.Name}}() error {{- end}} {{- end}} } {{- else}} // {{agentName .Capability}} is the marker interface for {{.Package}} plugins. // Implement one or more of the provider interfaces below. {{- if .Capability.Doc}} {{formatDoc .Capability.Doc}} {{- end}} type {{agentName .Capability}} interface{} {{- end}} {{- /* Generate optional provider interfaces for non-required capabilities */ -}} {{- if not .Capability.Required}} {{- range .Capability.Methods}} // {{providerInterface .}} provides the {{.Name}} function. type {{providerInterface .}} interface { {{- if and .HasInput .HasOutput}} {{.Name}}({{.Input.Type}}) ({{.Output.Type}}, error) {{- else if .HasInput}} {{.Name}}({{.Input.Type}}) error {{- else if .HasOutput}} {{.Name}}() ({{.Output.Type}}, error) {{- else}} {{.Name}}() error {{- end}} } {{- end}} {{- end}} // NotImplementedCode is the standard return code for unimplemented functions. const NotImplementedCode int32 = -2 // Register is a no-op on non-WASM platforms. // This stub allows code to compile outside of WASM. {{- if .Capability.Required}} func Register(_ {{agentName .Capability}}) {} {{- else}} func Register(_ {{agentName .Capability}}) {} {{- end}}