package decoder

import (
	
	

	
)

type boolDecoder struct {
	structName string
	fieldName  string
}

func newBoolDecoder(,  string) *boolDecoder {
	return &boolDecoder{structName: , fieldName: }
}

func ( *boolDecoder) ( *Stream,  int64,  unsafe.Pointer) error {
	 := .skipWhiteSpace()
	for {
		switch  {
		case 't':
			if  := trueBytes();  != nil {
				return 
			}
			**(**bool)(unsafe.Pointer(&)) = true
			return nil
		case 'f':
			if  := falseBytes();  != nil {
				return 
			}
			**(**bool)(unsafe.Pointer(&)) = false
			return nil
		case 'n':
			if  := nullBytes();  != nil {
				return 
			}
			return nil
		case nul:
			if .read() {
				 = .char()
				continue
			}
			goto 
		}
		break
	}
:
	return errors.ErrUnexpectedEndOfJSON("bool", .totalOffset())
}

func ( *boolDecoder) ( *RuntimeContext, ,  int64,  unsafe.Pointer) (int64, error) {
	 := .Buf
	 = skipWhiteSpace(, )
	switch [] {
	case 't':
		if  := validateTrue(, );  != nil {
			return 0, 
		}
		 += 4
		**(**bool)(unsafe.Pointer(&)) = true
		return , nil
	case 'f':
		if  := validateFalse(, );  != nil {
			return 0, 
		}
		 += 5
		**(**bool)(unsafe.Pointer(&)) = false
		return , nil
	case 'n':
		if  := validateNull(, );  != nil {
			return 0, 
		}
		 += 4
		return , nil
	}
	return 0, errors.ErrUnexpectedEndOfJSON("bool", )
}

func ( *boolDecoder) ( *RuntimeContext, ,  int64) ([][]byte, int64, error) {
	return nil, 0, fmt.Errorf("json: bool decoder does not support decode path")
}