// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package cases

import 

type caseFolder struct{ transform.NopResetter }

// caseFolder implements the Transformer interface for doing case folding.
func ( *caseFolder) (,  []byte,  bool) (,  int,  error) {
	 := context{dst: , src: , atEOF: }
	for .next() {
		foldFull(&)
		.checkpoint()
	}
	return .ret()
}

func ( *caseFolder) ( []byte,  bool) ( int,  error) {
	 := context{src: , atEOF: }
	for .next() && isFoldFull(&) {
		.checkpoint()
	}
	return .retSpan()
}

func makeFold( options) transform.SpanningTransformer {
	// TODO: Special case folding, through option Language, Special/Turkic, or
	// both.
	// TODO: Implement Compact options.
	return &caseFolder{}
}