patterns

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RavenABuilder

func RavenABuilder(messageID procs.MessageID, errID int32, header, request proto.Message, respond ...proto.Message) (output any, err error)

RavenABuilder 建立RavenA訊息

func RavenQBuilder

func RavenQBuilder(messageID procs.MessageID, header, request proto.Message) (output any, err error)

RavenQBuilder 建立RavenQ訊息

func RavenTestErrID

func RavenTestErrID(input any, expected int32) bool

RavenTestErrID 測試錯誤編號是否相符; input必須是msgs.ProtoMsg並且內存msgs.RavenAData, 並且錯誤編號與expected相符才會傳回true, 否則為false

func RavenTestHeader

func RavenTestHeader(input any, expected proto.Message) bool

RavenTestHeader 測試標頭資料是否相符; input必須是msgs.ProtoMsg並且內存msgs.RavenQ或是msgs.RavenAData, 並且標頭資料與expected相符才會傳回true, 否則為false

func RavenTestMessageID

func RavenTestMessageID(input any, expected procs.MessageID) bool

RavenTestMessageID 測試訊息編號是否相符; input必須是msgs.ProtoMsg並且訊息編號與expected相符才會傳回true, 否則為false

func RavenTestRequest

func RavenTestRequest(input any, expected proto.Message) bool

RavenTestRequest 測試要求資料是否相符; input必須是msgs.ProtoMsg並且內存msgs.RavenQ或是msgs.RavenAData, 並且要求資料與expected相符才會傳回true, 否則為false

func RavenTestRespond

func RavenTestRespond(input any, expected ...proto.Message) bool

RavenTestRespond 測試回應列表資料是否相符; input必須是msgs.ProtoMsg並且內存msgs.RavenAData, 並且expected列表的每一項元素都有與之相符的回應資料才會傳回true, 否則為false; 但是這並不代表expected列表與回應列表完全一致, 例如有只出現於回應列表, 但不在expected列表中的資料, 就無法通過此函式檢測出來

func RavenTestRespondLength

func RavenTestRespondLength(input any, expected int) bool

RavenTestRespondLength 測試回應列表長度是否相符; input必須是msgs.ProtoMsg並且內存msgs.RavenAData, 並且回應列表長度必須相符才會傳回true, 否則為false

func RavenTestRespondType

func RavenTestRespondType(input any, expected ...proto.Message) bool

RavenTestRespondType 測試回應列表類型是否相符; input必須是msgs.ProtoMsg並且內存msgs.RavenAData, 並且expected列表的每一項元素都有與之相符的回應類型才會傳回true, 否則為false; 但是這並不代表expected列表與回應列表完全一致, 例如有只出現於回應列表, 但不在expected列表中的類型, 就無法通過此函式檢測出來

Types

type RavenAData

type RavenAData[H, Q any] struct {
	MessageID procs.MessageID // 訊息編號
	ErrID     int32           // 錯誤編號
	Header    *H              // 標頭資料
	Request   *Q              // 要求資料
	Respond   []proto.Message // 回應列表
}

RavenAData RavenA資料

func RavenAParser

func RavenAParser[H, Q any](input any) (output *RavenAData[H, Q], err error)

RavenAParser 解析RavenA訊息

func (*RavenAData[H, Q]) Detail

func (this *RavenAData[H, Q]) Detail() string

Detail 取得詳細資訊

func (*RavenAData[H, Q]) GetRespond

func (this *RavenAData[H, Q]) GetRespond(type_ proto.Message) proto.Message

GetRespond 取得回應列表中首個符合指定類型的資料

func (*RavenAData[H, Q]) GetRespondAt

func (this *RavenAData[H, Q]) GetRespondAt(index int) proto.Message

GetRespondAt 取得回應列表中指定位置的資料

type RavenQData

type RavenQData[H, Q any] struct {
	MessageID procs.MessageID // 訊息編號
	Header    *H              // 標頭資料
	Request   *Q              // 要求資料
}

RavenQData RavenQ資料

func RavenQParser

func RavenQParser[H, Q any](input any) (output *RavenQData[H, Q], err error)

RavenQParser 解析RavenQ訊息

func (*RavenQData[H, Q]) Detail

func (this *RavenQData[H, Q]) Detail() string

Detail 取得詳細資訊

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL