string ICustomFormatter.Format(string format, object arg, IFormatProvider formatProvider) { var obj = arg as PyObject; if (obj != null) { var builder = new ReprBuilder(Options); builder.AppendRepr(obj); return(builder.ToString()); } else if (format == "PY") { var builder = new ReprBuilder(Options); builder.AppendLiteral(arg); return(builder.ToString()); } else if (format == "PTR") { if (Options.Is64Bit) { return(string.Format("0x{0:X16}", arg)); } else { return(string.Format("0x{0:X8}", arg)); } } else { var formattable = arg as IFormattable; if (formattable != null) { return(formattable.ToString(format, formatProvider)); } else if (arg != null) { return(arg.ToString()); } else { return(null); } } }
private ReprBuilder(ReprBuilder parent) { Options = parent.Options; _visitedObjs = parent._visitedObjs; _nestingLevel = parent._nestingLevel; }