// 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//// 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 arrayimport ()// A type which represents an immutable sequence of boolean values.typeBooleanstruct {array values []byte}// NewBoolean creates a boolean array from the data memory.Buffer and contains length elements.// The nullBitmap buffer can be nil of there are no null values.// If nulls is not known, use UnknownNullCount to calculate the value of NullN at runtime from the nullBitmap buffer.func ( int, *memory.Buffer, *memory.Buffer, int) *Boolean { := NewData(arrow.FixedWidthTypes.Boolean, , []*memory.Buffer{, }, nil, , 0)defer .Release()returnNewBooleanData()}func ( arrow.ArrayData) *Boolean { := &Boolean{} .refCount.Add(1) .setData(.(*Data))return}func ( *Boolean) ( int) bool {if < 0 || >= .data.length {panic("arrow/array: index out of range") }returnbitutil.BitIsSet(.values, .data.offset+)}func ( *Boolean) ( int) string {if .IsNull() {returnNullValueStr } else {returnstrconv.FormatBool(.Value()) }}func ( *Boolean) () string { := new(strings.Builder) .WriteString("[")for := 0; < .Len(); ++ {if > 0 {fmt.Fprintf(, " ") }switch {case .IsNull(): .WriteString(NullValueStr)default:fmt.Fprintf(, "%v", .Value()) } } .WriteString("]")return .String()}func ( *Boolean) ( *Data) { .array.setData() := .buffers[1]if != nil { .values = .Bytes() }}func ( *Boolean) ( int) interface{} {if .IsValid() {return .Value() }returnnil}func ( *Boolean) () ([]byte, error) { := make([]interface{}, .Len())for := 0; < .Len(); ++ {if .IsValid() { [] = .Value() } else { [] = nil } }returnjson.Marshal()}func arrayEqualBoolean(, *Boolean) bool {for := 0; < .Len(); ++ {if .IsNull() {continue }if .Value() != .Value() {returnfalse } }returntrue}var ( _ arrow.Array = (*Boolean)(nil) _ arrow.TypedArray[bool] = (*Boolean)(nil))
The pages are generated with Goldsv0.8.2. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.