private static void InitUTF16(CoreUnsafe.Pairs.Links links) { if (UTF16Initialized) return; UTF16Initialized = true; UTF16FirstCharLink = 1; UTF16LastCharLink = UTF16FirstCharLink + char.MaxValue - 1; ulong firstLink = links.Create(0, 0); if (firstLink != UTF16FirstCharLink) { links.Delete(ref firstLink); Console.WriteLine("Assume UTF16 table already created."); } else { for (ulong i = UTF16FirstCharLink + 1; i <= UTF16LastCharLink; i++) { ulong createdLink = links.Create(0, 0); if (createdLink != i) throw new Exception("Unable to initialize UTF 16 table."); } Console.WriteLine("UTF16 table created and initialized."); } Console.WriteLine("Total links count: {0}.", links.Total); }
private static void PrintContents(CoreUnsafe.Pairs.Links links) { if (links.Total == char.MaxValue) Console.WriteLine("Database is empty."); else { Console.WriteLine("Contents:"); int linksTotalLength = links.Total.ToString("0").Length; var printFormatBase = new String('0', linksTotalLength); string printFormat = string.Format("\t[{{0:{0}}}]: {{1:{0}}} -> {{2:{0}}} ({{3}})", printFormatBase); for (ulong link = UTF16LastCharLink + 1; link <= links.Total; link++) { Console.WriteLine(printFormat, link, links.GetSource(link), links.GetTarget(link), links.GetLink(link)); } } }