// ------------------------------------------------------------------------ // Project atila // Active Thing (activething.com) git.activething.com/go // // File name bfield.go // Created by DEV // Modified 19/02/2024 // // Copyright 2024 activething.com // ------------------------------------------------------------------------ // Licensed 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 // // http://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 bfields type ( BField struct { name []byte value []byte } ) func NewBField (name, value []byte) (*BField,error) { if len(name) == 0 { return nil,G.ErrInvalidName } return &BField { name: append(make([]byte,0,len(name)),name...), value: append(make([]byte,0,len(value)),value...), },nil } func (f BField) Name () []byte { return f.name } func (f BField) Value() []byte { return f.value } func (f BField) String () string { r := make([]byte,len(f.name)+len(f.value)+1) copy(r,f.name) r[len(f.name)]=':' copy(r[:len(f.name)+1],f.value) return string(r) }