static void Compile(SwiftyOptions options, UnicodeMapper unicodeMapper, ErrorHandling errors)
        {
            try {
                using (DisposableTempDirectory temp = new DisposableTempDirectory(null, true)) {
                    SwiftCompilerLocation compilerLocation = new SwiftCompilerLocation(options.SwiftBinPath, options.SwiftLibPath);
                    ClassCompilerOptions  compilerOptions  = new ClassCompilerOptions(options.TargetPlatformIs64Bit, options.Verbose, options.RetainXmlReflection, options.RetainSwiftWrappingCode);
                    NewClassCompiler      classCompiler    = new NewClassCompiler(compilerLocation, compilerOptions, unicodeMapper);

                    ClassCompilerNames     compilerNames          = new ClassCompilerNames(options.ModuleName, options.WrappingModuleName);
                    ClassCompilerLocations classCompilerLocations = new ClassCompilerLocations(options.ModulePaths, options.DylibPaths, options.TypeDatabasePaths);
                    var compileErrors = classCompiler.CompileToCSharp(classCompilerLocations, compilerNames, options.Targets, options.OutputDirectory);
                    errors.Add(compileErrors);
                }
            } catch (Exception err) {
                errors.Add(err);
            }
        }
        public static NewClassCompiler DefaultCSharpCompiler(UnicodeMapper unicodeMapper = null)
        {
            ClassCompilerOptions compilerOptions = new ClassCompilerOptions(targetPlatformIs64Bit: true, verbose: false, retainReflectedXmlOutput: true, retainSwiftWrappers: true);

            return(new NewClassCompiler(Compiler.CompilerLocation, compilerOptions, unicodeMapper ?? UnicodeMapper.Default));
        }