var searchIndex = {}; searchIndex["kicad_parse_gen"] = {"doc":"Kicad file format parser and generator library","items":[[4,"Sexp","kicad_parse_gen","a symbolic-expression\nCan be a string or a list or nothing",null,null],[13,"String","","plain String symbolic-expression",0,null],[13,"List","","list symbolic-expression",0,null],[13,"Empty","","empty, trivial symbolic-expression",0,null],[4,"KicadFile","","types of Kicad files that can be found",null,null],[13,"Unknown","","unknown file, probably no kicad file",1,null],[13,"Module","","a Kicad module, also know as a footprint",1,null],[13,"Schematic","","a Kicad schematic file",1,null],[13,"Layout","","a Kicad layout file",1,null],[13,"SymbolLib","","a Kicad symbol library file",1,null],[13,"Project","","a Kicad project file",1,null],[4,"Expected","","types of Kicad files that we expect to read",null,null],[13,"Module","","a Kicad module, also know as a footprint",2,null],[13,"Schematic","","a Kicad schematic file",2,null],[13,"Layout","","a Kicad layout file",2,null],[13,"SymbolLib","","a Kicad symbol library file",2,null],[13,"Project","","a Kicad project file",2,null],[13,"Any","","any Kicad file",2,null],[5,"read_file","","read a file",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[5,"write_file","","write a file",null,{"inputs":[{"name":"str"},{"name":"str"}],"output":{"name":"result"}}],[5,"read_kicad_file","","try to read a file, trying to parse it as the different formats\nand matching it against the Expected type",null,{"inputs":[{"name":"str"},{"name":"expected"}],"output":{"name":"result"}}],[5,"read_module","","read a file, expecting it to be a Kicad module file",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[5,"read_schematic","","read a file, expecting it to be a Kicad schematic",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[5,"read_layout","","read a file, expecting it to be a Kicad layout file",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[5,"write_layout","","write out a kicad Layout to a file",null,{"inputs":[{"name":"layout"},{"name":"str"}],"output":{"name":"result"}}],[5,"read_symbol_lib","","read a file, expecting it to be a Kicad symbol library file",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[5,"read_project","","read a file, expecting it to be a Kicad project file",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[0,"error","","Kicad error handling code and types",null,null],[4,"Error","kicad_parse_gen::error","encapsulating Error type",null,null],[13,"Parse","","parsing error",3,null],[13,"Other","","other error",3,null],[13,"Io","","IO error",3,null],[13,"Symbolic","","symbolic-expressions library error",3,null],[5,"str_error","","create an other error",null,{"inputs":[{"name":"string"}],"output":{"name":"result"}}],[5,"parse_error","","create a parse error",null,{"inputs":[{"name":"string"}],"output":{"name":"result"}}],[6,"Result","","result type type alias",null,null],[11,"fmt","","",3,null],[11,"description","","",3,null],[11,"cause","","",3,null],[11,"from","","",3,{"inputs":[{"name":"error"}],"output":{"name":"error"}}],[11,"from","","",3,{"inputs":[{"name":"error"}],"output":{"name":"error"}}],[11,"from","","",3,{"inputs":[{"name":"string"}],"output":{"name":"error"}}],[11,"fmt","","",3,null],[0,"footprint","kicad_parse_gen","Kicad footprint format handling",null,null],[3,"Module","kicad_parse_gen::footprint","a Kicad module, with a name and a list of elements",null,null],[12,"name","","name of the Kicad Module",4,null],[12,"elements","","elements contained within the Kicad Module",4,null],[3,"FpText","","text element",null,null],[12,"name","","name",5,null],[12,"value","","text",5,null],[12,"at","","location",5,null],[12,"layer","","layer",5,null],[12,"effects","","text effects",5,null],[12,"hide","","is it a hidden text",5,null],[3,"At","","a location and rotation in a layout",null,null],[12,"x","","x coordinate",6,null],[12,"y","","y coordinate",6,null],[12,"rot","","rotation",6,null],[3,"Font","","font attributes for text",null,null],[12,"size","","size of the font",7,null],[12,"thickness","","thickness of the font",7,null],[3,"Effects","","text effects",null,null],[12,"font","","the font used",8,null],[12,"justify","","the text justification",8,null],[3,"Xy","","X-Y element",null,null],[12,"x","","x coordinate",9,null],[12,"y","","y coorginate",9,null],[12,"t","","the type of X-Y",9,null],[3,"Pts","","a list of X-Y coordinates",null,null],[12,"elements","","the list of X-Y coordinates",10,null],[3,"Drill","","a drill",null,null],[12,"shape","","shape of the drill",11,null],[12,"width","","width of the drill",11,null],[12,"height","","height of the drill",11,null],[12,"offset_x","","x-offset of the drill",11,null],[12,"offset_y","","y-offset of the drill",11,null],[3,"Layer","","a pcb layer, with a side and a type",null,null],[12,"side","","side of the layer",12,null],[12,"t","","type of the layer",12,null],[3,"Layers","","a list of layers",null,null],[12,"layers","","a list of layers",13,null],[3,"Pad","","a pad",null,null],[12,"name","","name",14,null],[12,"t","","type",14,null],[12,"shape","","shape",14,null],[12,"size","","size",14,null],[12,"rect_delta","","offset",14,null],[12,"at","","location",14,null],[12,"layers","","layers",14,null],[12,"net","","associated net",14,null],[12,"drill","","drill",14,null],[12,"solder_paste_margin","","solder paste margin",14,null],[12,"solder_mask_margin","","solder mask margin",14,null],[12,"clearance","","clearance",14,null],[3,"FpPoly","","a polygon",null,null],[12,"pts","","points",15,null],[12,"width","","width",15,null],[12,"layer","","layer",15,null],[3,"FpLine","","a line",null,null],[12,"start","","start point",16,null],[12,"end","","end point",16,null],[12,"layer","","layer",16,null],[12,"width","","width",16,null],[3,"FpCircle","","a circle",null,null],[12,"center","","center point",17,null],[12,"end","","end point",17,null],[12,"layer","","layer",17,null],[12,"width","","width",17,null],[3,"FpArc","","an arc",null,null],[12,"start","","start point",18,null],[12,"end","","end point",18,null],[12,"angle","","angle",18,null],[12,"layer","","layer",18,null],[12,"width","","width",18,null],[3,"Net","","a net",null,null],[12,"num","","net number",19,null],[12,"name","","net name",19,null],[3,"Model","","a 3D model",null,null],[12,"name","","name",20,null],[12,"at","","location",20,null],[12,"scale","","scale",20,null],[12,"rotate","","rotation",20,null],[3,"Xyz","","a 3D X-Y-Z coordinate",null,null],[12,"x","","X coordinate",21,null],[12,"y","","Y coordinate",21,null],[12,"z","","Z coordinate",21,null],[4,"Element","","elements that can be found in a Module",null,null],[13,"SolderMaskMargin","","solder mask margin",22,null],[13,"Layer","","layer name",22,null],[13,"Descr","","description",22,null],[13,"Tags","","Tags element",22,null],[13,"Attr","","Attr element",22,null],[13,"FpText","","text",22,null],[13,"Pad","","pad",22,null],[13,"FpPoly","","polygon",22,null],[13,"FpLine","","line",22,null],[13,"FpCircle","","circle",22,null],[13,"FpArc","","arc",22,null],[13,"TEdit","","edited time stamp",22,null],[13,"TStamp","","time stamp",22,null],[13,"Path","","Path element",22,null],[13,"At","","location of module in layout",22,null],[13,"Model","","3D model information",22,null],[13,"Locked","","is the module locked",22,null],[4,"Justify","","text justification",null,null],[13,"Mirror","","the text is mirrored",23,null],[4,"XyType","","the type of X-Y element",null,null],[13,"Xy","","regular",24,null],[13,"Start","","starting point",24,null],[13,"End","","ending point",24,null],[13,"Size","","size",24,null],[13,"Center","","center point",24,null],[13,"RectDelta","","rectangular delta",24,null],[4,"PadType","","type of a Pad",null,null],[13,"Smd","","surface mount",25,null],[13,"Pth","","through-hole",25,null],[13,"NpPth","","non-plated through-hole",25,null],[4,"PadShape","","shape of a pad",null,null],[13,"Rect","","rectangular",26,null],[13,"Circle","","circular",26,null],[13,"Oval","","oval",26,null],[13,"Trapezoid","","trapezoid",26,null],[4,"LayerSide","","side of a layer",null,null],[13,"Front","","front side",27,null],[13,"Back","","back side",27,null],[13,"Dwgs","","Dwgs side",27,null],[13,"Cmts","","Cmts side",27,null],[13,"Eco1","","Eco1 side",27,null],[13,"Eco2","","Eco2 side",27,null],[13,"Edge","","edge of the board",27,null],[13,"Both","","both sides",27,null],[13,"In1","","Inner layer 1",27,null],[13,"In2","","Inner layer 2",27,null],[13,"None","","no side",27,null],[4,"LayerType","","type of a layer",null,null],[13,"Cu","","copper layer",28,null],[13,"Paste","","paste layer",28,null],[13,"Mask","","solder mask layer",28,null],[13,"SilkS","","silk screen layer",28,null],[13,"User","","user layer",28,null],[13,"Adhes","","adhesive layer",28,null],[13,"Cuts","","cuts layer",28,null],[13,"CrtYd","","CrtYd layer",28,null],[13,"Fab","","fabrication layer",28,null],[13,"Margin","","margin layer",28,null],[13,"Other","","an other custom named layer",28,null],[5,"module_to_string","","convert a Kicad Module (footprint) to a String",null,{"inputs":[{"name":"module"},{"name":"i64"}],"output":{"name":"result"}}],[5,"parse","","parse a &str to a Kicad Module",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"clone","","",4,null],[11,"fmt","","",4,null],[11,"new","","create a Module",4,{"inputs":[{"name":"string"}],"output":{"name":"module"}}],[11,"append","","append an Element to a Module",4,null],[11,"is_reference_with_name","","check if a Module has a reference Element with the specified name",4,null],[11,"set_reference","","update the name of the reference element specified by name, if found",4,null],[11,"at","","check if there is an At element and return the coordinates found\nreturns the default of (0.0,0.0) if not found",4,null],[11,"is_front","","check if the Module is on the front layer",4,null],[11,"rename_net","","rename a net",4,null],[11,"bounding_box","","",4,null],[11,"clone","","",22,null],[11,"fmt","","",22,null],[11,"bounding_box","","",22,null],[11,"clone","","",5,null],[11,"fmt","","",5,null],[11,"new","","create a text with given name and value",5,{"inputs":[{"name":"string"},{"name":"string"}],"output":{"name":"fptext"}}],[11,"set_effects","","set the text effects of the text",5,null],[11,"set_layer","","set the layer of the text",5,null],[11,"default","","",6,{"inputs":[],"output":{"name":"at"}}],[11,"clone","","",6,null],[11,"fmt","","",6,null],[11,"new","","create a location",6,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"at"}}],[11,"default","","",7,{"inputs":[],"output":{"name":"font"}}],[11,"clone","","",7,null],[11,"fmt","","",7,null],[11,"default","","",8,{"inputs":[],"output":{"name":"effects"}}],[11,"clone","","",8,null],[11,"fmt","","",8,null],[11,"from_font","","create a text effects element from font and justification",8,{"inputs":[{"name":"font"},{"name":"option"}],"output":{"name":"effects"}}],[11,"clone","","",23,null],[11,"fmt","","",23,null],[11,"eq","","",24,null],[11,"clone","","",24,null],[11,"fmt","","",24,null],[11,"default","","",24,{"inputs":[],"output":{"name":"xytype"}}],[11,"default","","",9,{"inputs":[],"output":{"name":"xy"}}],[11,"clone","","",9,null],[11,"fmt","","",9,null],[11,"new","","create a new X-Y coordinate",9,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"xytype"}],"output":{"name":"xy"}}],[11,"new_empty","","create a new default X-Y coordinate of a certain type",9,{"inputs":[{"name":"xytype"}],"output":{"name":"xy"}}],[11,"default","","",10,{"inputs":[],"output":{"name":"pts"}}],[11,"clone","","",10,null],[11,"fmt","","",10,null],[11,"default","","",11,{"inputs":[],"output":{"name":"drill"}}],[11,"fmt","","",11,null],[11,"clone","","",11,null],[11,"clone","","",25,null],[11,"fmt","","",25,null],[11,"from_string","","convert a &str to a pad type",25,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"clone","","",26,null],[11,"fmt","","",26,null],[11,"from_string","","convert a &str to a pad shape",26,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"clone","","",27,null],[11,"fmt","","",27,null],[11,"default","","",27,{"inputs":[],"output":{"name":"layerside"}}],[11,"clone","","",28,null],[11,"fmt","","",28,null],[11,"default","","",28,{"inputs":[],"output":{"name":"layertype"}}],[11,"default","","",12,{"inputs":[],"output":{"name":"layer"}}],[11,"clone","","",12,null],[11,"fmt","","",12,null],[11,"from_string","","create a layer from a String",12,{"inputs":[{"name":"string"}],"output":{"name":"result"}}],[11,"default","","",13,{"inputs":[],"output":{"name":"layers"}}],[11,"clone","","",13,null],[11,"fmt","","",13,null],[11,"append","","append a layer to a list of layers",13,null],[11,"clone","","",14,null],[11,"fmt","","",14,null],[11,"new","","create a pad with a name, type and shape",14,{"inputs":[{"name":"string"},{"name":"padtype"},{"name":"padshape"}],"output":{"name":"pad"}}],[11,"rename_net","","rename the net of a pad",14,null],[11,"set_net","","set the net of a pad",14,null],[11,"set_drill","","set the drill of a pad",14,null],[11,"bounding_box","","",14,null],[11,"default","","",15,{"inputs":[],"output":{"name":"fppoly"}}],[11,"clone","","",15,null],[11,"fmt","","",15,null],[11,"bounding_box","","bounding box of a polygon",15,null],[11,"clone","","",16,null],[11,"fmt","","",16,null],[11,"default","","",16,{"inputs":[],"output":{"name":"fpline"}}],[11,"bounding_box","","",16,null],[11,"clone","","",17,null],[11,"fmt","","",17,null],[11,"default","","",17,{"inputs":[],"output":{"name":"fpcircle"}}],[11,"bounding_box","","",17,null],[11,"clone","","",18,null],[11,"fmt","","",18,null],[11,"default","","",18,{"inputs":[],"output":{"name":"fparc"}}],[11,"clone","","",19,null],[11,"fmt","","",19,null],[11,"clone","","",20,null],[11,"fmt","","",20,null],[11,"clone","","",21,null],[11,"fmt","","",21,null],[11,"new","","create a X-Y-Z coordinate",21,{"inputs":[{"name":"f64"},{"name":"f64"},{"name":"f64"}],"output":{"name":"xyz"}}],[11,"into_sexp","","",4,null],[11,"into_sexp","","",22,null],[11,"into_sexp","","",5,null],[11,"into_sexp","","",6,null],[11,"into_sexp","","",7,null],[11,"into_sexp","","",8,null],[11,"into_sexp","","",23,null],[11,"into_sexp","","",9,null],[11,"into_sexp","","",10,null],[11,"into_sexp","","",11,null],[11,"into_sexp","","",25,null],[11,"into_sexp","","",26,null],[11,"into_sexp","","",12,null],[11,"into_sexp","","",13,null],[11,"into_sexp","","",14,null],[11,"into_sexp","","",15,null],[11,"into_sexp","","",16,null],[11,"into_sexp","","",17,null],[11,"into_sexp","","",18,null],[11,"into_sexp","","",19,null],[11,"into_sexp","","",20,null],[11,"into_sexp","","",21,null],[11,"from_sexp","kicad_parse_gen::footprint::de","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"fmt","kicad_parse_gen::footprint","",12,null],[0,"schematic","kicad_parse_gen","Kicad schematic format handling",null,null],[3,"Schematic","kicad_parse_gen::schematic","a Kicad schematic",null,null],[12,"filename","","filename of the schematic",30,null],[12,"libraries","","list of libraries referenced",30,null],[12,"description","","description",30,null],[12,"elements","","elements contained in the schematic",30,null],[12,"sheets","","nested sheets contained in the schematic",30,null],[3,"Description","","description of a schematic",null,null],[12,"size","","size",31,null],[12,"dimx","","dimension in X",31,null],[12,"dimy","","dimension in Y",31,null],[12,"title","","title",31,null],[12,"date","","date",31,null],[12,"rev","","revision",31,null],[12,"comp","","computer reference",31,null],[12,"comment1","","comment1",31,null],[12,"comment2","","comment2",31,null],[12,"comment3","","comment3",31,null],[12,"comment4","","comment4",31,null],[12,"sheet","","sheet number",31,null],[12,"sheet_count","","number of sheets in total",31,null],[3,"Component","","a schematic component",null,null],[12,"name","","name",32,null],[12,"reference","","reference",32,null],[12,"u","","u",32,null],[12,"x","","X coordinate",32,null],[12,"y","","Y coordinate",32,null],[12,"ar_path","","ARPath",32,null],[12,"fields","","component fields",32,null],[12,"rotation","","rotation",32,null],[3,"ComponentRotation","","a component rotation",null,null],[3,"ComponentField","","a component field",null,null],[12,"i","","index of component field",33,null],[12,"value","","value",33,null],[12,"orientation","","orientation",33,null],[12,"x","","X coordinate",33,null],[12,"y","","Y coordinate",33,null],[12,"size","","size",33,null],[12,"visible","","if it is visible",33,null],[12,"hjustify","","horizontal justification",33,null],[12,"vjustify","","vertical justification",33,null],[12,"italic","","if it is italic",33,null],[12,"bold","","if it is bold",33,null],[12,"name","","name of the component field",33,null],[3,"Sheet","","a component sheet",null,null],[12,"x","","X coordinate",34,null],[12,"y","","Y coordinate",34,null],[12,"dimx","","X dimension",34,null],[12,"dimy","","Y dimension",34,null],[12,"unique","","timestamp field",34,null],[12,"name","","name of the sheet",34,null],[12,"name_size","","size of the name",34,null],[12,"filename","","filename of the sheet font",34,null],[12,"filename_size","","size of the filename font",34,null],[12,"labels","","sheet labels",34,null],[3,"SheetLabel","","label on a sheet",null,null],[12,"name","","name",35,null],[12,"form","","shape of the label",35,null],[12,"side","","side of the label",35,null],[12,"x","","X coordinate",35,null],[12,"y","","Y coordinate",35,null],[12,"size","","size",35,null],[4,"Element","","a schematic element is either a component or another unparsed element",null,null],[13,"Component","","a component element",36,null],[13,"Other","","an unparsed other element",36,null],[4,"Orientation","","a component orientation",null,null],[13,"Horizontal","","horizontal orientation",37,null],[13,"Vertical","","vertical orientation",37,null],[4,"Justify","","a text justification on a component",null,null],[13,"Left","","left justification",38,null],[13,"Right","","right justification",38,null],[13,"Center","","center justification",38,null],[13,"Bottom","","bottom justification",38,null],[13,"Top","","top justification",38,null],[4,"LabelForm","","form of a label",null,null],[13,"Input","","input",39,null],[13,"Output","","output",39,null],[13,"BiDi","","bidirectional",39,null],[13,"TriState","","tristate",39,null],[13,"Unspecified","","unspecified",39,null],[4,"LabelSide","","a side of a label",null,null],[13,"Left","","left",40,null],[13,"Right","","right",40,null],[13,"Top","","top",40,null],[13,"Bottom","","bottom",40,null],[5,"parse","","parse a &str to a Kicad schematic, optionally setting the filename",null,{"inputs":[{"name":"option"},{"name":"str"}],"output":{"name":"result"}}],[5,"parse_str","","parse a &str as a Kicad schematic",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[5,"parse_file","","parse a file as a Kicad schematic",null,{"inputs":[{"name":"pathbuf"}],"output":{"name":"result"}}],[5,"filename_for_sheet","","get the filename for a sheet in a schematic",null,{"inputs":[{"name":"schematic"},{"name":"sheet"}],"output":{"name":"result"}}],[5,"parse_file_for_sheet","","parse a file as a Kicad schematic for a sheet",null,{"inputs":[{"name":"schematic"},{"name":"sheet"}],"output":{"name":"result"}}],[11,"default","","",30,{"inputs":[],"output":{"name":"schematic"}}],[11,"fmt","","",30,null],[11,"modify_component","","modify the component by name",30,null],[11,"modify_components","","modify all components",30,null],[11,"collect_components","","collect all components in a list",30,null],[11,"components","","return all components in a new list (redundant?)",30,null],[11,"component_by_reference","","get a component by reference",30,null],[11,"increment_sheet_count","","increment the sheet counter of the schematic",30,null],[11,"fmt","","",30,null],[11,"clone","","",31,null],[11,"fmt","","",31,null],[11,"default","","",31,{"inputs":[],"output":{"name":"description"}}],[11,"fmt","","",31,null],[11,"fmt","","",36,null],[11,"fmt","","",36,null],[11,"clone","","",32,null],[11,"decode","","",32,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",32,null],[11,"fmt","","",32,null],[11,"default","","",32,{"inputs":[],"output":{"name":"component"}}],[11,"get_field_value","","get a component field value by name",32,null],[11,"get_field","","get a component field by name",32,null],[11,"get_available_field_num","","get the first free component field number",32,null],[11,"fields_hash","","get the component fields as a hashmap",32,null],[11,"update_reference","","update the reference of a component",32,null],[11,"update_name","","update the name of a component",32,null],[11,"update_field","","update name and value of a component field",32,null],[11,"add_new_field","","add a new component field based on an existing one but\nwith a new name and value",32,null],[11,"fmt","","",32,null],[11,"clone","","",41,null],[11,"decode","","",41,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",41,null],[11,"fmt","","",41,null],[11,"clone","","",37,null],[11,"decode","","",37,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",37,null],[11,"fmt","","",37,null],[11,"new","","create a new component orientation from a char",37,{"inputs":[{"name":"char"}],"output":{"name":"result"}}],[11,"fmt","","",37,null],[11,"clone","","",38,null],[11,"decode","","",38,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",38,null],[11,"fmt","","",38,null],[11,"new","","create a justification based on a char",38,{"inputs":[{"name":"char"}],"output":{"name":"result"}}],[11,"fmt","","",38,null],[11,"clone","","",33,null],[11,"decode","","",33,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",33,null],[11,"fmt","","",33,null],[11,"new_from","","create a component field",33,{"inputs":[{"name":"i64"},{"name":"string"},{"name":"string"},{"name":"f64"},{"name":"f64"}],"output":{"name":"componentfield"}}],[11,"fmt","","",33,null],[11,"clone","","",34,null],[11,"fmt","","",34,null],[11,"default","","",34,{"inputs":[],"output":{"name":"sheet"}}],[11,"fmt","","",34,null],[11,"clone","","",35,null],[11,"fmt","","",35,null],[11,"default","","",35,{"inputs":[],"output":{"name":"sheetlabel"}}],[11,"fmt","","",35,null],[11,"clone","","",39,null],[11,"fmt","","",39,null],[11,"fmt","","",39,null],[11,"clone","","",40,null],[11,"fmt","","",40,null],[11,"fmt","","",40,null],[0,"layout","kicad_parse_gen","Kicad layout format handling",null,null],[3,"Layout","kicad_parse_gen::layout","a Kicad layout",null,null],[12,"version","","version of file",42,null],[12,"host","","build-host",42,null],[12,"general","","general information",42,null],[12,"page","","page size",42,null],[12,"setup","","setup information",42,null],[12,"layers","","layers",42,null],[12,"elements","","layout elements",42,null],[3,"Zone","","a zone region",null,null],[12,"net","","net number of the zone",43,null],[12,"net_name","","net name of the zone",43,null],[12,"other","","other (uninterpreted symbolic-expressions)",43,null],[3,"Host","","build host info",null,null],[12,"tool","","tool name",44,null],[12,"build","","tool version",44,null],[3,"General","","general information",null,null],[12,"links","","number of links",45,null],[12,"no_connects","","number of no-connect",45,null],[12,"area","","area of layout",45,null],[12,"thickness","","thickness",45,null],[12,"drawings","","number of drawings",45,null],[12,"tracks","","number of tracks",45,null],[12,"zones","","number of zones",45,null],[12,"modules","","number of moduls",45,null],[12,"nets","","number of nets",45,null],[3,"Area","","area",null,null],[12,"x1","","X1 coordinate",46,null],[12,"y1","","Y1 coordinate",46,null],[12,"x2","","X2 coordinate",46,null],[12,"y2","","Y2 coordinate",46,null],[3,"Layer","","layer",null,null],[12,"num","","layer number",47,null],[12,"layer","","layer",47,null],[12,"layer_type","","layer type",47,null],[12,"hide","","if the layer is shown",47,null],[3,"Setup","","setup elements of the layout",null,null],[12,"elements","","the setup elements",48,null],[12,"pcbplotparams","","the pcb plot elements",48,null],[3,"SetupElement","","a generic setup element",null,null],[12,"name","","a name",49,null],[12,"value1","","a first value",49,null],[12,"value2","","an optional second value",49,null],[3,"Net","","a net",null,null],[12,"num","","net number",50,null],[12,"name","","net name",50,null],[3,"NetClass","","a net class",null,null],[12,"name","","name",51,null],[12,"desc","","description",51,null],[12,"clearance","","clearance",51,null],[12,"trace_width","","trace width",51,null],[12,"via_dia","","via diameter",51,null],[12,"via_drill","","via drill",51,null],[12,"uvia_dia","","micro via diameter",51,null],[12,"uvia_drill","","micro via drill",51,null],[12,"nets","","associated nets",51,null],[3,"GrText","","text",null,null],[12,"value","","text",52,null],[12,"at","","location",52,null],[12,"layer","","layer",52,null],[12,"effects","","text effects",52,null],[12,"tstamp","","timestamp",52,null],[3,"GrLine","","line",null,null],[12,"start","","start point",53,null],[12,"end","","end point",53,null],[12,"angle","","angle",53,null],[12,"layer","","layer",53,null],[12,"width","","width",53,null],[12,"tstamp","","time stamp",53,null],[3,"GrArc","","arc",null,null],[12,"start","","start point",54,null],[12,"end","","end point",54,null],[12,"angle","","angle",54,null],[12,"layer","","layer",54,null],[12,"width","","width",54,null],[12,"tstamp","","timestamp",54,null],[3,"Dimension","","dimension",null,null],[12,"name","","name",55,null],[12,"width","","width",55,null],[12,"layer","","layer",55,null],[12,"tstamp","","time stamp",55,null],[12,"text","","text",55,null],[12,"feature1","","feature1",55,null],[12,"feature2","","feature2",55,null],[12,"crossbar","","crossbar",55,null],[12,"arrow1a","","arrow1a",55,null],[12,"arrow1b","","arrow1b",55,null],[12,"arrow2a","","arrow2a",55,null],[12,"arrow2b","","arrow2b",55,null],[4,"Element","","layout elements",null,null],[13,"Module","","module",56,null],[13,"Net","","net",56,null],[13,"NetClass","","netclass",56,null],[13,"GrText","","text",56,null],[13,"GrLine","","line",56,null],[13,"GrArc","","arc",56,null],[13,"Dimension","","dimension",56,null],[13,"Zone","","zone",56,null],[13,"Other","","other (uninterpreted symbolic-expression)",56,null],[4,"LayerType","","layer type",null,null],[13,"Signal","","signal layer",57,null],[13,"User","","user layer",57,null],[5,"layout_to_string","","convert a Kicad layout to a String",null,{"inputs":[{"name":"layout"},{"name":"i64"}],"output":{"name":"result"}}],[5,"parse","","parse a &str to a Kicad layout",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"fmt","","",42,null],[11,"fmt","","",56,null],[11,"clone","","",56,null],[11,"fmt","","",43,null],[11,"clone","","",43,null],[11,"fmt","","",44,null],[11,"clone","","",44,null],[11,"fmt","","",45,null],[11,"clone","","",45,null],[11,"default","","",46,{"inputs":[],"output":{"name":"area"}}],[11,"fmt","","",46,null],[11,"clone","","",46,null],[11,"fmt","","",47,null],[11,"clone","","",47,null],[11,"fmt","","",57,null],[11,"clone","","",57,null],[11,"default","","",48,{"inputs":[],"output":{"name":"setup"}}],[11,"fmt","","",48,null],[11,"clone","","",48,null],[11,"fmt","","",49,null],[11,"clone","","",49,null],[11,"fmt","","",50,null],[11,"eq","","",50,null],[11,"ne","","",50,null],[11,"clone","","",50,null],[11,"fmt","","",51,null],[11,"eq","","",51,null],[11,"ne","","",51,null],[11,"clone","","",51,null],[11,"fmt","","",52,null],[11,"clone","","",52,null],[11,"fmt","","",53,null],[11,"clone","","",53,null],[11,"fmt","","",54,null],[11,"clone","","",54,null],[11,"fmt","","",55,null],[11,"clone","","",55,null],[11,"default","","",42,{"inputs":[],"output":{"name":"layout"}}],[11,"nets","","get lists of nets",42,null],[11,"change_net_name","","change net name",42,null],[11,"netclasses","","get list of netclasses",42,null],[11,"get_module","","get module",42,null],[11,"modify_module","","modify a module",42,null],[11,"add_net","","add a net",42,null],[11,"add_netclass","","add a net class",42,null],[11,"default","","",44,{"inputs":[],"output":{"name":"host"}}],[11,"default","","",45,{"inputs":[],"output":{"name":"general"}}],[11,"equal_no_net","","check if two netclasses are equal not looking at the nets",51,null],[11,"has_net","","check if a netclass has a net",51,null],[11,"get","","get a setup element",48,null],[11,"update_element","","update a setup element",48,null],[11,"from_sexp","kicad_parse_gen::layout::de","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"from_sexp","","",29,{"inputs":[{"name":"sexp"}],"output":{"name":"result"}}],[11,"into_sexp","kicad_parse_gen::layout","",42,null],[11,"into_sexp","","",45,null],[11,"into_sexp","","",46,null],[11,"into_sexp","","",56,null],[11,"into_sexp","","",43,null],[11,"into_sexp","","",50,null],[11,"into_sexp","","",51,null],[11,"into_sexp","","",47,null],[11,"fmt","","",57,null],[11,"into_sexp","","",49,null],[11,"into_sexp","","",48,null],[11,"into_sexp","","",52,null],[11,"into_sexp","","",53,null],[11,"into_sexp","","",54,null],[11,"into_sexp","","",55,null],[0,"symbol_lib","kicad_parse_gen","Kicad symbol library format handling",null,null],[3,"SymbolLib","kicad_parse_gen::symbol_lib","a Kicad symbolic file",null,null],[12,"symbols","","the symbols",58,null],[3,"Symbol","","a symbol",null,null],[12,"name","","name",59,null],[12,"reference","","reference",59,null],[12,"text_offset","","text offset",59,null],[12,"draw_pinnumber","","draw pinnumber",59,null],[12,"draw_pinname","","draw pinname",59,null],[12,"unit_count","","unit count",59,null],[12,"unit_locked","","is the unit locked",59,null],[12,"is_power","","is it a power symbol",59,null],[12,"fields","","fields",59,null],[12,"draw","","draw",59,null],[3,"Field","","a field",null,null],[12,"i","","field number",60,null],[12,"value","","value",60,null],[12,"x","","X coordinate",60,null],[12,"y","","Y coordinate",60,null],[12,"dimension","","dimension",60,null],[12,"orientation","","orientation",60,null],[12,"visible","","if the field is visible",60,null],[12,"hjustify","","horizontal justification",60,null],[12,"vjustify","","vertical justification",60,null],[12,"italic","","italic",60,null],[12,"bold","","bold",60,null],[12,"name","","name of the field",60,null],[5,"parse_str","","parse a &str to a symbol lib",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[5,"parse_file","","parse a file to a symbol lib",null,{"inputs":[{"name":"pathbuf"}],"output":{"name":"result"}}],[11,"default","","",58,{"inputs":[],"output":{"name":"symbollib"}}],[11,"fmt","","",58,null],[11,"clone","","",59,null],[11,"fmt","","",59,null],[11,"clone","","",60,null],[11,"fmt","","",60,null],[11,"find","","find a symbol in a symbol lib",58,null],[11,"fmt","","",58,null],[11,"new","","create a new symbol",59,{"inputs":[{"name":"string"},{"name":"string"}],"output":{"name":"symbol"}}],[11,"set_name","","set the name of the symbol",59,null],[11,"fmt","","",59,null],[11,"default","","",60,{"inputs":[],"output":{"name":"field"}}],[11,"fmt","","",60,null],[0,"project","kicad_parse_gen","Kicad project format handling",null,null],[3,"Project","kicad_parse_gen::project","a Kicad project",null,null],[12,"data","","project file content as an unparsed String",61,null],[5,"parse_str","","parse a &str to a project",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"fmt","","",61,null],[8,"FromSexp","kicad_parse_gen","convert from a symbolic-expression to something",null,null],[10,"from_sexp","","convert from a symbolic-expression to something",62,{"inputs":[{"name":"sexp"}],"output":{"name":"self"}}],[8,"BoundingBox","","calculate the bounding box of an item",null,null],[10,"bounding_box","","calculate the bounding box of an item",63,null],[11,"fmt","","",1,null],[11,"eq","","",2,null],[11,"fmt","","",1,null],[11,"new_empty","","create an empty symbolic-expression",0,{"inputs":[],"output":{"name":"sexp"}}],[11,"new_string","","create a String type symbolic-expression",0,{"inputs":[{"name":"t"}],"output":{"name":"sexp"}}],[11,"new_list","","create a list type symbolic-expression",0,{"inputs":[{"name":"vec"}],"output":{"name":"sexp"}}],[11,"new_named_list","","create a list type symbolic-expression where\nthe first element of the list is a string that indicates\nthe name, the remainder is filled in via the provided\nfill function",0,{"inputs":[{"name":"str"},{"name":"f"}],"output":{"name":"sexp"}}],[11,"new_named","","create a list type symbolic-expression where\nthe first element of the list is a string that indicates\nthe name",0,{"inputs":[{"name":"str"},{"name":"t"}],"output":{"name":"sexp"}}],[11,"new_named_sexp","","create a list type symbolic-expression where\nthe first element of the list is a string that indicates\nthe name, and the second is another symbolic-expression\ncreated via the IntoSexp trait",0,{"inputs":[{"name":"str"},{"name":"t"}],"output":{"name":"sexp"}}],[11,"from","","create a symbolic-expression via the IntoSexp trait",0,{"inputs":[{"name":"t"}],"output":{"name":"sexp"}}],[11,"list","","access the symbolic-expression as if it is a List",0,null],[11,"string","","access the symbolic-expression as if it is a String",0,null],[11,"f","","access the symbolic-expression as if it is a String\nthat is a f64",0,null],[11,"i","","access the symbolic-expression as if it is a String\nthat is an i64",0,null],[11,"list_name","","access the symbolic-expression as if it is a List\nassuming the first element is a String and return that",0,null],[11,"slice_atom","","access the symbolic-expression as if it is a named List\nwhere the name is provided and returns the remaining elements\nafter the name as a slice",0,null],[11,"named_value","","access the symbolic-expression as if it is a named List\nwith two elements where the name is provided and returns\nthe next element in the list",0,null],[11,"named_value_i","","as named_value but converted to i64",0,null],[11,"named_value_f","","as named_value but converted to f64",0,null],[11,"named_value_string","","as named_value but converted to String",0,null],[11,"slice_atom_num","","get the symbolic-expression as a list which starts\nwith a string that indicates the name and has num more\nelements, returns those elements",0,null],[11,"clone","","",0,null],[11,"fmt","","",0,null],[11,"fmt","","",0,null]],"paths":[[4,"Sexp"],[4,"KicadFile"],[4,"Expected"],[4,"Error"],[3,"Module"],[3,"FpText"],[3,"At"],[3,"Font"],[3,"Effects"],[3,"Xy"],[3,"Pts"],[3,"Drill"],[3,"Layer"],[3,"Layers"],[3,"Pad"],[3,"FpPoly"],[3,"FpLine"],[3,"FpCircle"],[3,"FpArc"],[3,"Net"],[3,"Model"],[3,"Xyz"],[4,"Element"],[4,"Justify"],[4,"XyType"],[4,"PadType"],[4,"PadShape"],[4,"LayerSide"],[4,"LayerType"],[6,"Result"],[3,"Schematic"],[3,"Description"],[3,"Component"],[3,"ComponentField"],[3,"Sheet"],[3,"SheetLabel"],[4,"Element"],[4,"Orientation"],[4,"Justify"],[4,"LabelForm"],[4,"LabelSide"],[3,"ComponentRotation"],[3,"Layout"],[3,"Zone"],[3,"Host"],[3,"General"],[3,"Area"],[3,"Layer"],[3,"Setup"],[3,"SetupElement"],[3,"Net"],[3,"NetClass"],[3,"GrText"],[3,"GrLine"],[3,"GrArc"],[3,"Dimension"],[4,"Element"],[4,"LayerType"],[3,"SymbolLib"],[3,"Symbol"],[3,"Field"],[3,"Project"],[8,"FromSexp"],[8,"BoundingBox"]]}; initSearch(searchIndex);