plc4go/protocols/knxnetip/readwrite/model/ApduDataExt.go (800 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package model import ( "context" "fmt" "github.com/pkg/errors" "github.com/rs/zerolog" . "github.com/apache/plc4x/plc4go/spi/codegen/fields" . "github.com/apache/plc4x/plc4go/spi/codegen/io" "github.com/apache/plc4x/plc4go/spi/utils" ) // Code generated by code-generation. DO NOT EDIT. // ApduDataExt is the corresponding interface of ApduDataExt type ApduDataExt interface { ApduDataExtContract ApduDataExtRequirements fmt.Stringer utils.LengthAware utils.Serializable utils.Copyable // IsApduDataExt is a marker method to prevent unintentional type checks (interfaces of same signature) IsApduDataExt() // CreateBuilder creates a ApduDataExtBuilder CreateApduDataExtBuilder() ApduDataExtBuilder } // ApduDataExtContract provides a set of functions which can be overwritten by a sub struct type ApduDataExtContract interface { // GetLength() returns a parser argument GetLength() uint8 // IsApduDataExt is a marker method to prevent unintentional type checks (interfaces of same signature) IsApduDataExt() // CreateBuilder creates a ApduDataExtBuilder CreateApduDataExtBuilder() ApduDataExtBuilder } // ApduDataExtRequirements provides a set of functions which need to be implemented by a sub struct type ApduDataExtRequirements interface { GetLengthInBits(ctx context.Context) uint16 GetLengthInBytes(ctx context.Context) uint16 // GetExtApciType returns ExtApciType (discriminator field) GetExtApciType() uint8 } // _ApduDataExt is the data-structure of this message type _ApduDataExt struct { _SubType interface { ApduDataExtContract ApduDataExtRequirements } // Arguments. Length uint8 } var _ ApduDataExtContract = (*_ApduDataExt)(nil) // NewApduDataExt factory function for _ApduDataExt func NewApduDataExt(length uint8) *_ApduDataExt { return &_ApduDataExt{Length: length} } /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////// Builder /////////////////////// // ApduDataExtBuilder is a builder for ApduDataExt type ApduDataExtBuilder interface { utils.Copyable // WithMandatoryFields adds all mandatory fields (convenience for using multiple builder calls) WithMandatoryFields() ApduDataExtBuilder // WithArgLength sets a parser argument WithArgLength(uint8) ApduDataExtBuilder // AsApduDataExtOpenRoutingTableRequest converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtOpenRoutingTableRequest() ApduDataExtOpenRoutingTableRequestBuilder // AsApduDataExtReadRoutingTableRequest converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtReadRoutingTableRequest() ApduDataExtReadRoutingTableRequestBuilder // AsApduDataExtReadRoutingTableResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtReadRoutingTableResponse() ApduDataExtReadRoutingTableResponseBuilder // AsApduDataExtWriteRoutingTableRequest converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtWriteRoutingTableRequest() ApduDataExtWriteRoutingTableRequestBuilder // AsApduDataExtReadRouterMemoryRequest converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtReadRouterMemoryRequest() ApduDataExtReadRouterMemoryRequestBuilder // AsApduDataExtReadRouterMemoryResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtReadRouterMemoryResponse() ApduDataExtReadRouterMemoryResponseBuilder // AsApduDataExtWriteRouterMemoryRequest converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtWriteRouterMemoryRequest() ApduDataExtWriteRouterMemoryRequestBuilder // AsApduDataExtReadRouterStatusRequest converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtReadRouterStatusRequest() ApduDataExtReadRouterStatusRequestBuilder // AsApduDataExtReadRouterStatusResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtReadRouterStatusResponse() ApduDataExtReadRouterStatusResponseBuilder // AsApduDataExtWriteRouterStatusRequest converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtWriteRouterStatusRequest() ApduDataExtWriteRouterStatusRequestBuilder // AsApduDataExtMemoryBitWrite converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtMemoryBitWrite() ApduDataExtMemoryBitWriteBuilder // AsApduDataExtAuthorizeRequest converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtAuthorizeRequest() ApduDataExtAuthorizeRequestBuilder // AsApduDataExtAuthorizeResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtAuthorizeResponse() ApduDataExtAuthorizeResponseBuilder // AsApduDataExtKeyWrite converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtKeyWrite() ApduDataExtKeyWriteBuilder // AsApduDataExtKeyResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtKeyResponse() ApduDataExtKeyResponseBuilder // AsApduDataExtPropertyValueRead converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtPropertyValueRead() ApduDataExtPropertyValueReadBuilder // AsApduDataExtPropertyValueResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtPropertyValueResponse() ApduDataExtPropertyValueResponseBuilder // AsApduDataExtPropertyValueWrite converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtPropertyValueWrite() ApduDataExtPropertyValueWriteBuilder // AsApduDataExtPropertyDescriptionRead converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtPropertyDescriptionRead() ApduDataExtPropertyDescriptionReadBuilder // AsApduDataExtPropertyDescriptionResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtPropertyDescriptionResponse() ApduDataExtPropertyDescriptionResponseBuilder // AsApduDataExtNetworkParameterRead converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtNetworkParameterRead() ApduDataExtNetworkParameterReadBuilder // AsApduDataExtNetworkParameterResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtNetworkParameterResponse() ApduDataExtNetworkParameterResponseBuilder // AsApduDataExtIndividualAddressSerialNumberRead converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtIndividualAddressSerialNumberRead() ApduDataExtIndividualAddressSerialNumberReadBuilder // AsApduDataExtIndividualAddressSerialNumberResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtIndividualAddressSerialNumberResponse() ApduDataExtIndividualAddressSerialNumberResponseBuilder // AsApduDataExtIndividualAddressSerialNumberWrite converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtIndividualAddressSerialNumberWrite() ApduDataExtIndividualAddressSerialNumberWriteBuilder // AsApduDataExtDomainAddressWrite converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtDomainAddressWrite() ApduDataExtDomainAddressWriteBuilder // AsApduDataExtDomainAddressRead converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtDomainAddressRead() ApduDataExtDomainAddressReadBuilder // AsApduDataExtDomainAddressResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtDomainAddressResponse() ApduDataExtDomainAddressResponseBuilder // AsApduDataExtDomainAddressSelectiveRead converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtDomainAddressSelectiveRead() ApduDataExtDomainAddressSelectiveReadBuilder // AsApduDataExtNetworkParameterWrite converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtNetworkParameterWrite() ApduDataExtNetworkParameterWriteBuilder // AsApduDataExtLinkRead converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtLinkRead() ApduDataExtLinkReadBuilder // AsApduDataExtLinkResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtLinkResponse() ApduDataExtLinkResponseBuilder // AsApduDataExtLinkWrite converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtLinkWrite() ApduDataExtLinkWriteBuilder // AsApduDataExtGroupPropertyValueRead converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtGroupPropertyValueRead() ApduDataExtGroupPropertyValueReadBuilder // AsApduDataExtGroupPropertyValueResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtGroupPropertyValueResponse() ApduDataExtGroupPropertyValueResponseBuilder // AsApduDataExtGroupPropertyValueWrite converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtGroupPropertyValueWrite() ApduDataExtGroupPropertyValueWriteBuilder // AsApduDataExtGroupPropertyValueInfoReport converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtGroupPropertyValueInfoReport() ApduDataExtGroupPropertyValueInfoReportBuilder // AsApduDataExtDomainAddressSerialNumberRead converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtDomainAddressSerialNumberRead() ApduDataExtDomainAddressSerialNumberReadBuilder // AsApduDataExtDomainAddressSerialNumberResponse converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtDomainAddressSerialNumberResponse() ApduDataExtDomainAddressSerialNumberResponseBuilder // AsApduDataExtDomainAddressSerialNumberWrite converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtDomainAddressSerialNumberWrite() ApduDataExtDomainAddressSerialNumberWriteBuilder // AsApduDataExtFileStreamInfoReport converts this build to a subType of ApduDataExt. It is always possible to return to current builder using Done() AsApduDataExtFileStreamInfoReport() ApduDataExtFileStreamInfoReportBuilder // Build builds the ApduDataExt or returns an error if something is wrong PartialBuild() (ApduDataExtContract, error) // MustBuild does the same as Build but panics on error PartialMustBuild() ApduDataExtContract // Build builds the ApduDataExt or returns an error if something is wrong Build() (ApduDataExt, error) // MustBuild does the same as Build but panics on error MustBuild() ApduDataExt } // NewApduDataExtBuilder() creates a ApduDataExtBuilder func NewApduDataExtBuilder() ApduDataExtBuilder { return &_ApduDataExtBuilder{_ApduDataExt: new(_ApduDataExt)} } type _ApduDataExtChildBuilder interface { utils.Copyable setParent(ApduDataExtContract) buildForApduDataExt() (ApduDataExt, error) } type _ApduDataExtBuilder struct { *_ApduDataExt childBuilder _ApduDataExtChildBuilder err *utils.MultiError } var _ (ApduDataExtBuilder) = (*_ApduDataExtBuilder)(nil) func (b *_ApduDataExtBuilder) WithMandatoryFields() ApduDataExtBuilder { return b } func (b *_ApduDataExtBuilder) WithArgLength(length uint8) ApduDataExtBuilder { b.Length = length return b } func (b *_ApduDataExtBuilder) PartialBuild() (ApduDataExtContract, error) { if b.err != nil { return nil, errors.Wrap(b.err, "error occurred during build") } return b._ApduDataExt.deepCopy(), nil } func (b *_ApduDataExtBuilder) PartialMustBuild() ApduDataExtContract { build, err := b.PartialBuild() if err != nil { panic(err) } return build } func (b *_ApduDataExtBuilder) AsApduDataExtOpenRoutingTableRequest() ApduDataExtOpenRoutingTableRequestBuilder { if cb, ok := b.childBuilder.(ApduDataExtOpenRoutingTableRequestBuilder); ok { return cb } cb := NewApduDataExtOpenRoutingTableRequestBuilder().(*_ApduDataExtOpenRoutingTableRequestBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtReadRoutingTableRequest() ApduDataExtReadRoutingTableRequestBuilder { if cb, ok := b.childBuilder.(ApduDataExtReadRoutingTableRequestBuilder); ok { return cb } cb := NewApduDataExtReadRoutingTableRequestBuilder().(*_ApduDataExtReadRoutingTableRequestBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtReadRoutingTableResponse() ApduDataExtReadRoutingTableResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtReadRoutingTableResponseBuilder); ok { return cb } cb := NewApduDataExtReadRoutingTableResponseBuilder().(*_ApduDataExtReadRoutingTableResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtWriteRoutingTableRequest() ApduDataExtWriteRoutingTableRequestBuilder { if cb, ok := b.childBuilder.(ApduDataExtWriteRoutingTableRequestBuilder); ok { return cb } cb := NewApduDataExtWriteRoutingTableRequestBuilder().(*_ApduDataExtWriteRoutingTableRequestBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtReadRouterMemoryRequest() ApduDataExtReadRouterMemoryRequestBuilder { if cb, ok := b.childBuilder.(ApduDataExtReadRouterMemoryRequestBuilder); ok { return cb } cb := NewApduDataExtReadRouterMemoryRequestBuilder().(*_ApduDataExtReadRouterMemoryRequestBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtReadRouterMemoryResponse() ApduDataExtReadRouterMemoryResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtReadRouterMemoryResponseBuilder); ok { return cb } cb := NewApduDataExtReadRouterMemoryResponseBuilder().(*_ApduDataExtReadRouterMemoryResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtWriteRouterMemoryRequest() ApduDataExtWriteRouterMemoryRequestBuilder { if cb, ok := b.childBuilder.(ApduDataExtWriteRouterMemoryRequestBuilder); ok { return cb } cb := NewApduDataExtWriteRouterMemoryRequestBuilder().(*_ApduDataExtWriteRouterMemoryRequestBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtReadRouterStatusRequest() ApduDataExtReadRouterStatusRequestBuilder { if cb, ok := b.childBuilder.(ApduDataExtReadRouterStatusRequestBuilder); ok { return cb } cb := NewApduDataExtReadRouterStatusRequestBuilder().(*_ApduDataExtReadRouterStatusRequestBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtReadRouterStatusResponse() ApduDataExtReadRouterStatusResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtReadRouterStatusResponseBuilder); ok { return cb } cb := NewApduDataExtReadRouterStatusResponseBuilder().(*_ApduDataExtReadRouterStatusResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtWriteRouterStatusRequest() ApduDataExtWriteRouterStatusRequestBuilder { if cb, ok := b.childBuilder.(ApduDataExtWriteRouterStatusRequestBuilder); ok { return cb } cb := NewApduDataExtWriteRouterStatusRequestBuilder().(*_ApduDataExtWriteRouterStatusRequestBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtMemoryBitWrite() ApduDataExtMemoryBitWriteBuilder { if cb, ok := b.childBuilder.(ApduDataExtMemoryBitWriteBuilder); ok { return cb } cb := NewApduDataExtMemoryBitWriteBuilder().(*_ApduDataExtMemoryBitWriteBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtAuthorizeRequest() ApduDataExtAuthorizeRequestBuilder { if cb, ok := b.childBuilder.(ApduDataExtAuthorizeRequestBuilder); ok { return cb } cb := NewApduDataExtAuthorizeRequestBuilder().(*_ApduDataExtAuthorizeRequestBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtAuthorizeResponse() ApduDataExtAuthorizeResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtAuthorizeResponseBuilder); ok { return cb } cb := NewApduDataExtAuthorizeResponseBuilder().(*_ApduDataExtAuthorizeResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtKeyWrite() ApduDataExtKeyWriteBuilder { if cb, ok := b.childBuilder.(ApduDataExtKeyWriteBuilder); ok { return cb } cb := NewApduDataExtKeyWriteBuilder().(*_ApduDataExtKeyWriteBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtKeyResponse() ApduDataExtKeyResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtKeyResponseBuilder); ok { return cb } cb := NewApduDataExtKeyResponseBuilder().(*_ApduDataExtKeyResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtPropertyValueRead() ApduDataExtPropertyValueReadBuilder { if cb, ok := b.childBuilder.(ApduDataExtPropertyValueReadBuilder); ok { return cb } cb := NewApduDataExtPropertyValueReadBuilder().(*_ApduDataExtPropertyValueReadBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtPropertyValueResponse() ApduDataExtPropertyValueResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtPropertyValueResponseBuilder); ok { return cb } cb := NewApduDataExtPropertyValueResponseBuilder().(*_ApduDataExtPropertyValueResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtPropertyValueWrite() ApduDataExtPropertyValueWriteBuilder { if cb, ok := b.childBuilder.(ApduDataExtPropertyValueWriteBuilder); ok { return cb } cb := NewApduDataExtPropertyValueWriteBuilder().(*_ApduDataExtPropertyValueWriteBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtPropertyDescriptionRead() ApduDataExtPropertyDescriptionReadBuilder { if cb, ok := b.childBuilder.(ApduDataExtPropertyDescriptionReadBuilder); ok { return cb } cb := NewApduDataExtPropertyDescriptionReadBuilder().(*_ApduDataExtPropertyDescriptionReadBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtPropertyDescriptionResponse() ApduDataExtPropertyDescriptionResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtPropertyDescriptionResponseBuilder); ok { return cb } cb := NewApduDataExtPropertyDescriptionResponseBuilder().(*_ApduDataExtPropertyDescriptionResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtNetworkParameterRead() ApduDataExtNetworkParameterReadBuilder { if cb, ok := b.childBuilder.(ApduDataExtNetworkParameterReadBuilder); ok { return cb } cb := NewApduDataExtNetworkParameterReadBuilder().(*_ApduDataExtNetworkParameterReadBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtNetworkParameterResponse() ApduDataExtNetworkParameterResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtNetworkParameterResponseBuilder); ok { return cb } cb := NewApduDataExtNetworkParameterResponseBuilder().(*_ApduDataExtNetworkParameterResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtIndividualAddressSerialNumberRead() ApduDataExtIndividualAddressSerialNumberReadBuilder { if cb, ok := b.childBuilder.(ApduDataExtIndividualAddressSerialNumberReadBuilder); ok { return cb } cb := NewApduDataExtIndividualAddressSerialNumberReadBuilder().(*_ApduDataExtIndividualAddressSerialNumberReadBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtIndividualAddressSerialNumberResponse() ApduDataExtIndividualAddressSerialNumberResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtIndividualAddressSerialNumberResponseBuilder); ok { return cb } cb := NewApduDataExtIndividualAddressSerialNumberResponseBuilder().(*_ApduDataExtIndividualAddressSerialNumberResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtIndividualAddressSerialNumberWrite() ApduDataExtIndividualAddressSerialNumberWriteBuilder { if cb, ok := b.childBuilder.(ApduDataExtIndividualAddressSerialNumberWriteBuilder); ok { return cb } cb := NewApduDataExtIndividualAddressSerialNumberWriteBuilder().(*_ApduDataExtIndividualAddressSerialNumberWriteBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtDomainAddressWrite() ApduDataExtDomainAddressWriteBuilder { if cb, ok := b.childBuilder.(ApduDataExtDomainAddressWriteBuilder); ok { return cb } cb := NewApduDataExtDomainAddressWriteBuilder().(*_ApduDataExtDomainAddressWriteBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtDomainAddressRead() ApduDataExtDomainAddressReadBuilder { if cb, ok := b.childBuilder.(ApduDataExtDomainAddressReadBuilder); ok { return cb } cb := NewApduDataExtDomainAddressReadBuilder().(*_ApduDataExtDomainAddressReadBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtDomainAddressResponse() ApduDataExtDomainAddressResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtDomainAddressResponseBuilder); ok { return cb } cb := NewApduDataExtDomainAddressResponseBuilder().(*_ApduDataExtDomainAddressResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtDomainAddressSelectiveRead() ApduDataExtDomainAddressSelectiveReadBuilder { if cb, ok := b.childBuilder.(ApduDataExtDomainAddressSelectiveReadBuilder); ok { return cb } cb := NewApduDataExtDomainAddressSelectiveReadBuilder().(*_ApduDataExtDomainAddressSelectiveReadBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtNetworkParameterWrite() ApduDataExtNetworkParameterWriteBuilder { if cb, ok := b.childBuilder.(ApduDataExtNetworkParameterWriteBuilder); ok { return cb } cb := NewApduDataExtNetworkParameterWriteBuilder().(*_ApduDataExtNetworkParameterWriteBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtLinkRead() ApduDataExtLinkReadBuilder { if cb, ok := b.childBuilder.(ApduDataExtLinkReadBuilder); ok { return cb } cb := NewApduDataExtLinkReadBuilder().(*_ApduDataExtLinkReadBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtLinkResponse() ApduDataExtLinkResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtLinkResponseBuilder); ok { return cb } cb := NewApduDataExtLinkResponseBuilder().(*_ApduDataExtLinkResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtLinkWrite() ApduDataExtLinkWriteBuilder { if cb, ok := b.childBuilder.(ApduDataExtLinkWriteBuilder); ok { return cb } cb := NewApduDataExtLinkWriteBuilder().(*_ApduDataExtLinkWriteBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtGroupPropertyValueRead() ApduDataExtGroupPropertyValueReadBuilder { if cb, ok := b.childBuilder.(ApduDataExtGroupPropertyValueReadBuilder); ok { return cb } cb := NewApduDataExtGroupPropertyValueReadBuilder().(*_ApduDataExtGroupPropertyValueReadBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtGroupPropertyValueResponse() ApduDataExtGroupPropertyValueResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtGroupPropertyValueResponseBuilder); ok { return cb } cb := NewApduDataExtGroupPropertyValueResponseBuilder().(*_ApduDataExtGroupPropertyValueResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtGroupPropertyValueWrite() ApduDataExtGroupPropertyValueWriteBuilder { if cb, ok := b.childBuilder.(ApduDataExtGroupPropertyValueWriteBuilder); ok { return cb } cb := NewApduDataExtGroupPropertyValueWriteBuilder().(*_ApduDataExtGroupPropertyValueWriteBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtGroupPropertyValueInfoReport() ApduDataExtGroupPropertyValueInfoReportBuilder { if cb, ok := b.childBuilder.(ApduDataExtGroupPropertyValueInfoReportBuilder); ok { return cb } cb := NewApduDataExtGroupPropertyValueInfoReportBuilder().(*_ApduDataExtGroupPropertyValueInfoReportBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtDomainAddressSerialNumberRead() ApduDataExtDomainAddressSerialNumberReadBuilder { if cb, ok := b.childBuilder.(ApduDataExtDomainAddressSerialNumberReadBuilder); ok { return cb } cb := NewApduDataExtDomainAddressSerialNumberReadBuilder().(*_ApduDataExtDomainAddressSerialNumberReadBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtDomainAddressSerialNumberResponse() ApduDataExtDomainAddressSerialNumberResponseBuilder { if cb, ok := b.childBuilder.(ApduDataExtDomainAddressSerialNumberResponseBuilder); ok { return cb } cb := NewApduDataExtDomainAddressSerialNumberResponseBuilder().(*_ApduDataExtDomainAddressSerialNumberResponseBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtDomainAddressSerialNumberWrite() ApduDataExtDomainAddressSerialNumberWriteBuilder { if cb, ok := b.childBuilder.(ApduDataExtDomainAddressSerialNumberWriteBuilder); ok { return cb } cb := NewApduDataExtDomainAddressSerialNumberWriteBuilder().(*_ApduDataExtDomainAddressSerialNumberWriteBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) AsApduDataExtFileStreamInfoReport() ApduDataExtFileStreamInfoReportBuilder { if cb, ok := b.childBuilder.(ApduDataExtFileStreamInfoReportBuilder); ok { return cb } cb := NewApduDataExtFileStreamInfoReportBuilder().(*_ApduDataExtFileStreamInfoReportBuilder) cb.parentBuilder = b b.childBuilder = cb return cb } func (b *_ApduDataExtBuilder) Build() (ApduDataExt, error) { v, err := b.PartialBuild() if err != nil { return nil, errors.Wrap(err, "error occurred during partial build") } if b.childBuilder == nil { return nil, errors.New("no child builder present") } b.childBuilder.setParent(v) return b.childBuilder.buildForApduDataExt() } func (b *_ApduDataExtBuilder) MustBuild() ApduDataExt { build, err := b.Build() if err != nil { panic(err) } return build } func (b *_ApduDataExtBuilder) DeepCopy() any { _copy := b.CreateApduDataExtBuilder().(*_ApduDataExtBuilder) _copy.childBuilder = b.childBuilder.DeepCopy().(_ApduDataExtChildBuilder) _copy.childBuilder.setParent(_copy) if b.err != nil { _copy.err = b.err.DeepCopy().(*utils.MultiError) } return _copy } // CreateApduDataExtBuilder creates a ApduDataExtBuilder func (b *_ApduDataExt) CreateApduDataExtBuilder() ApduDataExtBuilder { if b == nil { return NewApduDataExtBuilder() } return &_ApduDataExtBuilder{_ApduDataExt: b.deepCopy()} } /////////////////////// /////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// // Deprecated: use the interface for direct cast func CastApduDataExt(structType any) ApduDataExt { if casted, ok := structType.(ApduDataExt); ok { return casted } if casted, ok := structType.(*ApduDataExt); ok { return *casted } return nil } func (m *_ApduDataExt) GetTypeName() string { return "ApduDataExt" } func (m *_ApduDataExt) getLengthInBits(ctx context.Context) uint16 { lengthInBits := uint16(0) // Discriminator Field (extApciType) lengthInBits += 6 return lengthInBits } func (m *_ApduDataExt) GetLengthInBits(ctx context.Context) uint16 { return m._SubType.GetLengthInBits(ctx) } func (m *_ApduDataExt) GetLengthInBytes(ctx context.Context) uint16 { return m._SubType.GetLengthInBits(ctx) / 8 } func ApduDataExtParse[T ApduDataExt](ctx context.Context, theBytes []byte, length uint8) (T, error) { return ApduDataExtParseWithBuffer[T](ctx, utils.NewReadBufferByteBased(theBytes), length) } func ApduDataExtParseWithBufferProducer[T ApduDataExt](length uint8) func(ctx context.Context, readBuffer utils.ReadBuffer) (T, error) { return func(ctx context.Context, readBuffer utils.ReadBuffer) (T, error) { v, err := ApduDataExtParseWithBuffer[T](ctx, readBuffer, length) if err != nil { var zero T return zero, err } return v, nil } } func ApduDataExtParseWithBuffer[T ApduDataExt](ctx context.Context, readBuffer utils.ReadBuffer, length uint8) (T, error) { v, err := (&_ApduDataExt{Length: length}).parse(ctx, readBuffer, length) if err != nil { var zero T return zero, err } vc, ok := v.(T) if !ok { var zero T return zero, errors.Errorf("Unexpected type %T. Expected type %T", v, *new(T)) } return vc, nil } func (m *_ApduDataExt) parse(ctx context.Context, readBuffer utils.ReadBuffer, length uint8) (__apduDataExt ApduDataExt, err error) { positionAware := readBuffer _ = positionAware if pullErr := readBuffer.PullContext("ApduDataExt"); pullErr != nil { return nil, errors.Wrap(pullErr, "Error pulling for ApduDataExt") } currentPos := positionAware.GetPos() _ = currentPos extApciType, err := ReadDiscriminatorField[uint8](ctx, "extApciType", ReadUnsignedByte(readBuffer, uint8(6))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'extApciType' field")) } // Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type) var _child ApduDataExt switch { case extApciType == 0x00: // ApduDataExtOpenRoutingTableRequest if _child, err = new(_ApduDataExtOpenRoutingTableRequest).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtOpenRoutingTableRequest for type-switch of ApduDataExt") } case extApciType == 0x01: // ApduDataExtReadRoutingTableRequest if _child, err = new(_ApduDataExtReadRoutingTableRequest).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtReadRoutingTableRequest for type-switch of ApduDataExt") } case extApciType == 0x02: // ApduDataExtReadRoutingTableResponse if _child, err = new(_ApduDataExtReadRoutingTableResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtReadRoutingTableResponse for type-switch of ApduDataExt") } case extApciType == 0x03: // ApduDataExtWriteRoutingTableRequest if _child, err = new(_ApduDataExtWriteRoutingTableRequest).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtWriteRoutingTableRequest for type-switch of ApduDataExt") } case extApciType == 0x08: // ApduDataExtReadRouterMemoryRequest if _child, err = new(_ApduDataExtReadRouterMemoryRequest).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtReadRouterMemoryRequest for type-switch of ApduDataExt") } case extApciType == 0x09: // ApduDataExtReadRouterMemoryResponse if _child, err = new(_ApduDataExtReadRouterMemoryResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtReadRouterMemoryResponse for type-switch of ApduDataExt") } case extApciType == 0x0A: // ApduDataExtWriteRouterMemoryRequest if _child, err = new(_ApduDataExtWriteRouterMemoryRequest).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtWriteRouterMemoryRequest for type-switch of ApduDataExt") } case extApciType == 0x0D: // ApduDataExtReadRouterStatusRequest if _child, err = new(_ApduDataExtReadRouterStatusRequest).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtReadRouterStatusRequest for type-switch of ApduDataExt") } case extApciType == 0x0E: // ApduDataExtReadRouterStatusResponse if _child, err = new(_ApduDataExtReadRouterStatusResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtReadRouterStatusResponse for type-switch of ApduDataExt") } case extApciType == 0x0F: // ApduDataExtWriteRouterStatusRequest if _child, err = new(_ApduDataExtWriteRouterStatusRequest).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtWriteRouterStatusRequest for type-switch of ApduDataExt") } case extApciType == 0x10: // ApduDataExtMemoryBitWrite if _child, err = new(_ApduDataExtMemoryBitWrite).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtMemoryBitWrite for type-switch of ApduDataExt") } case extApciType == 0x11: // ApduDataExtAuthorizeRequest if _child, err = new(_ApduDataExtAuthorizeRequest).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtAuthorizeRequest for type-switch of ApduDataExt") } case extApciType == 0x12: // ApduDataExtAuthorizeResponse if _child, err = new(_ApduDataExtAuthorizeResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtAuthorizeResponse for type-switch of ApduDataExt") } case extApciType == 0x13: // ApduDataExtKeyWrite if _child, err = new(_ApduDataExtKeyWrite).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtKeyWrite for type-switch of ApduDataExt") } case extApciType == 0x14: // ApduDataExtKeyResponse if _child, err = new(_ApduDataExtKeyResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtKeyResponse for type-switch of ApduDataExt") } case extApciType == 0x15: // ApduDataExtPropertyValueRead if _child, err = new(_ApduDataExtPropertyValueRead).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtPropertyValueRead for type-switch of ApduDataExt") } case extApciType == 0x16: // ApduDataExtPropertyValueResponse if _child, err = new(_ApduDataExtPropertyValueResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtPropertyValueResponse for type-switch of ApduDataExt") } case extApciType == 0x17: // ApduDataExtPropertyValueWrite if _child, err = new(_ApduDataExtPropertyValueWrite).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtPropertyValueWrite for type-switch of ApduDataExt") } case extApciType == 0x18: // ApduDataExtPropertyDescriptionRead if _child, err = new(_ApduDataExtPropertyDescriptionRead).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtPropertyDescriptionRead for type-switch of ApduDataExt") } case extApciType == 0x19: // ApduDataExtPropertyDescriptionResponse if _child, err = new(_ApduDataExtPropertyDescriptionResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtPropertyDescriptionResponse for type-switch of ApduDataExt") } case extApciType == 0x1A: // ApduDataExtNetworkParameterRead if _child, err = new(_ApduDataExtNetworkParameterRead).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtNetworkParameterRead for type-switch of ApduDataExt") } case extApciType == 0x1B: // ApduDataExtNetworkParameterResponse if _child, err = new(_ApduDataExtNetworkParameterResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtNetworkParameterResponse for type-switch of ApduDataExt") } case extApciType == 0x1C: // ApduDataExtIndividualAddressSerialNumberRead if _child, err = new(_ApduDataExtIndividualAddressSerialNumberRead).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtIndividualAddressSerialNumberRead for type-switch of ApduDataExt") } case extApciType == 0x1D: // ApduDataExtIndividualAddressSerialNumberResponse if _child, err = new(_ApduDataExtIndividualAddressSerialNumberResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtIndividualAddressSerialNumberResponse for type-switch of ApduDataExt") } case extApciType == 0x1E: // ApduDataExtIndividualAddressSerialNumberWrite if _child, err = new(_ApduDataExtIndividualAddressSerialNumberWrite).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtIndividualAddressSerialNumberWrite for type-switch of ApduDataExt") } case extApciType == 0x20: // ApduDataExtDomainAddressWrite if _child, err = new(_ApduDataExtDomainAddressWrite).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtDomainAddressWrite for type-switch of ApduDataExt") } case extApciType == 0x21: // ApduDataExtDomainAddressRead if _child, err = new(_ApduDataExtDomainAddressRead).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtDomainAddressRead for type-switch of ApduDataExt") } case extApciType == 0x22: // ApduDataExtDomainAddressResponse if _child, err = new(_ApduDataExtDomainAddressResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtDomainAddressResponse for type-switch of ApduDataExt") } case extApciType == 0x23: // ApduDataExtDomainAddressSelectiveRead if _child, err = new(_ApduDataExtDomainAddressSelectiveRead).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtDomainAddressSelectiveRead for type-switch of ApduDataExt") } case extApciType == 0x24: // ApduDataExtNetworkParameterWrite if _child, err = new(_ApduDataExtNetworkParameterWrite).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtNetworkParameterWrite for type-switch of ApduDataExt") } case extApciType == 0x25: // ApduDataExtLinkRead if _child, err = new(_ApduDataExtLinkRead).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtLinkRead for type-switch of ApduDataExt") } case extApciType == 0x26: // ApduDataExtLinkResponse if _child, err = new(_ApduDataExtLinkResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtLinkResponse for type-switch of ApduDataExt") } case extApciType == 0x27: // ApduDataExtLinkWrite if _child, err = new(_ApduDataExtLinkWrite).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtLinkWrite for type-switch of ApduDataExt") } case extApciType == 0x28: // ApduDataExtGroupPropertyValueRead if _child, err = new(_ApduDataExtGroupPropertyValueRead).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtGroupPropertyValueRead for type-switch of ApduDataExt") } case extApciType == 0x29: // ApduDataExtGroupPropertyValueResponse if _child, err = new(_ApduDataExtGroupPropertyValueResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtGroupPropertyValueResponse for type-switch of ApduDataExt") } case extApciType == 0x2A: // ApduDataExtGroupPropertyValueWrite if _child, err = new(_ApduDataExtGroupPropertyValueWrite).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtGroupPropertyValueWrite for type-switch of ApduDataExt") } case extApciType == 0x2B: // ApduDataExtGroupPropertyValueInfoReport if _child, err = new(_ApduDataExtGroupPropertyValueInfoReport).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtGroupPropertyValueInfoReport for type-switch of ApduDataExt") } case extApciType == 0x2C: // ApduDataExtDomainAddressSerialNumberRead if _child, err = new(_ApduDataExtDomainAddressSerialNumberRead).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtDomainAddressSerialNumberRead for type-switch of ApduDataExt") } case extApciType == 0x2D: // ApduDataExtDomainAddressSerialNumberResponse if _child, err = new(_ApduDataExtDomainAddressSerialNumberResponse).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtDomainAddressSerialNumberResponse for type-switch of ApduDataExt") } case extApciType == 0x2E: // ApduDataExtDomainAddressSerialNumberWrite if _child, err = new(_ApduDataExtDomainAddressSerialNumberWrite).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtDomainAddressSerialNumberWrite for type-switch of ApduDataExt") } case extApciType == 0x30: // ApduDataExtFileStreamInfoReport if _child, err = new(_ApduDataExtFileStreamInfoReport).parse(ctx, readBuffer, m, length); err != nil { return nil, errors.Wrap(err, "Error parsing sub-type ApduDataExtFileStreamInfoReport for type-switch of ApduDataExt") } default: return nil, errors.Errorf("Unmapped type for parameters [extApciType=%v]", extApciType) } if closeErr := readBuffer.CloseContext("ApduDataExt"); closeErr != nil { return nil, errors.Wrap(closeErr, "Error closing for ApduDataExt") } return _child, nil } func (pm *_ApduDataExt) serializeParent(ctx context.Context, writeBuffer utils.WriteBuffer, child ApduDataExt, serializeChildFunction func() error) error { // We redirect all calls through client as some methods are only implemented there m := child _ = m positionAware := writeBuffer _ = positionAware log := zerolog.Ctx(ctx) _ = log if pushErr := writeBuffer.PushContext("ApduDataExt"); pushErr != nil { return errors.Wrap(pushErr, "Error pushing for ApduDataExt") } if err := WriteDiscriminatorField(ctx, "extApciType", m.GetExtApciType(), WriteUnsignedByte(writeBuffer, 6)); err != nil { return errors.Wrap(err, "Error serializing 'extApciType' field") } // Switch field (Depending on the discriminator values, passes the serialization to a sub-type) if _typeSwitchErr := serializeChildFunction(); _typeSwitchErr != nil { return errors.Wrap(_typeSwitchErr, "Error serializing sub-type field") } if popErr := writeBuffer.PopContext("ApduDataExt"); popErr != nil { return errors.Wrap(popErr, "Error popping for ApduDataExt") } return nil } //// // Arguments Getter func (m *_ApduDataExt) GetLength() uint8 { return m.Length } // //// func (m *_ApduDataExt) IsApduDataExt() {} func (m *_ApduDataExt) DeepCopy() any { return m.deepCopy() } func (m *_ApduDataExt) deepCopy() *_ApduDataExt { if m == nil { return nil } _ApduDataExtCopy := &_ApduDataExt{ nil, // will be set by child m.Length, } return _ApduDataExtCopy }