with CSV; -- This source is licensed under Creative Commons CC0 v1.0. -- -- To read the full text, see license.txt in the main directory of this repository -- or go to https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt -- -- For a human readable summary, go to https://creativecommons.org/publicdomain/zero/1.0/ package body Candidates is function To_String (Input_Candidate : in Candidate; Delimiter : in Character := ',') return String is package My_CSV is new CSV (Delimiter => Delimiter); use type My_CSV.String_Vectors.Vector; My_Record : My_CSV.CSV_Record; begin My_Record := My_CSV.String_Vectors.Empty_Vector & Input_Candidate.Group & Input_Candidate.Group_Rank & Input_Candidate.First_Name & Input_Candidate.Last_Name & Input_Candidate.Party; return My_CSV.Unparse_Record (My_Record); end To_String; function Candidate_Header (Delimiter : in Character := ',') return String is begin return "Group" & Delimiter & "Group Rank" & Delimiter & "First Name" & Delimiter & "Last Name" & Delimiter & "Party"; end Candidate_Header; function Name_And_Party (Input_Candidate : in Candidate) return String is use type SU.Unbounded_String; begin return SU.To_String (Input_Candidate.First_Name & " " & Input_Candidate.Last_Name & ", " & Input_Candidate.Party); end Name_And_Party; end Candidates;