var searchIndex = {}; searchIndex["takuzu"] = {"doc":"A Takuzu (a.k.a. Binairo) solving library.","items":[[3,"Grid","takuzu","A container for takuzu grid manipulation.",null,null],[4,"GridError","","An error returned when checking if the grid is well-sized and legal.",null,null],[13,"BadSize","","The grid does not have the right size.",0,null],[13,"Illegal","","The grid is illegal, that is it infringes at least one of the rules.",0,null],[4,"GridParseError","","An error returned when parsing a string to create a grid failed.",null,null],[13,"CreationError","","A `Grid` cannot be created from this `Array`.",1,null],[13,"UnexpectedCharacter","","At least one character other than `0`, `1`, `.` or `\\n`\nwas found in the string.",1,null],[4,"SourceError","","An error returned by the `source` method when either reading or parsing failed.",null,null],[13,"IO","","Reading from the source failed.",2,null],[13,"Parsing","","Parsing failed.",2,null],[11,"fmt","","",0,null],[11,"fmt","","",0,null],[11,"description","","",0,null],[11,"cause","","",0,null],[11,"from","","",0,{"inputs":[{"name":"gridsizeerror"}],"output":{"name":"self"}}],[11,"fmt","","",1,null],[11,"fmt","","",1,null],[11,"description","","",1,null],[11,"cause","","",1,null],[11,"eq","","",3,null],[11,"ne","","",3,null],[11,"hash","","",3,null],[11,"fmt","","",3,null],[11,"clone","","",3,null],[11,"fmt","","",3,null],[11,"from_str","","",3,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"index","","",3,null],[11,"index_mut","","",3,null],[11,"new","","Creates a `Grid` from a preexisting array.",3,{"inputs":[{"name":"array"}],"output":{"name":"result"}}],[11,"size","","Returns the size of the grid.",3,null],[11,"into_inner","","Consumes a `Grid` and returns the underlying array.",3,null],[11,"is_filled","","Returns `true` if the grid contains no empty cell.",3,null],[11,"is_legal","","Verifies that the grid does not currently violate any of the rules.\nReturns `true` if the grid is legal.",3,null],[11,"is_cell_legal","","Verifies that a certain cell does not violate any of the rules.\nReturns `true` if the value is legal.",3,null],[11,"next_empty","","Returns the index of the first empty cell or None if the grid is filled.",3,null],[11,"apply_rules","","Skims through the grid once, filling in the blanks\nwhere the value is unambiguous according to one of the rules,\nthen returns if the grid was modified or repeats the operation\nfor the next rule. Each rule is applied once at the most.",3,null],[11,"solve","","Solves the grid using both rules logic and a backtracking algorithm,\nand returns an array containing the solution(s).\nIf no solution exists, an empty array is returned.",3,null],[11,"to_string_diff","","Suitable for terminals.",3,null],[11,"fmt","","",2,null],[11,"fmt","","",2,null],[11,"description","","",2,null],[11,"cause","","",2,null],[11,"from","","",2,{"inputs":[{"name":"ioerror"}],"output":{"name":"self"}}],[11,"from","","",2,{"inputs":[{"name":"gridparseerror"}],"output":{"name":"self"}}],[6,"Array","","A raw takuzu grid representation.",null,null],[8,"Source","","The `Source` trait allows to use any implementor of the `Read` trait\nas an input source for the grid string format with no additional effort.",null,null],[11,"source","","Creates a `Grid` from a readable source.\nReads from the source until EOF, parses the data as a string,\nthen checks the array for size and legality and converts it to a `Grid`",4,null],[11,"source","","Creates a `Grid` from a readable source.\nReads from the source until EOF, parses the data as a string,\nthen checks the array for size and legality and converts it to a `Grid`",4,null]],"paths":[[4,"GridError"],[4,"GridParseError"],[4,"SourceError"],[3,"Grid"],[8,"Source"]]}; initSearch(searchIndex);