namespace Nessos.FsPickler.Json
open System
open Nessos.FsPickler
type internal OAttribute = System.Runtime.InteropServices.OptionalAttribute
type internal DAttribute = System.Runtime.InteropServices.DefaultParameterValueAttribute
///
/// Json pickler instance.
///
type JsonSerializer =
inherit FsPicklerTextSerializer
val private format : JsonPickleFormatProvider
///
/// Initializes a new Json pickler instance.
///
/// indent out Json pickles.
/// omit FsPickler header in Json pickles.
/// specify a custom type name converter.
new ([] ?indent, [] ?omitHeader, [] ?typeConverter) =
let indent = defaultArg indent false
let omitHeader = defaultArg omitHeader false
let json = new JsonPickleFormatProvider(indent, omitHeader)
{
inherit FsPicklerTextSerializer(json, ?typeConverter = typeConverter)
format = json
}
///
/// Gets or sets whether Json output should be indented.
///
member x.Indent
with get () = x.format.Indent
and set b = x.format.Indent <- b
///
/// Gets or sets whether FsPickler headers should be ignored in pickle format.
///
member x.OmitHeader
with get () = x.format.OmitHeader
and set b = x.format.OmitHeader <- b
///
/// Gets or sets a non-null whitespace string that serves as a custom, top-level sequence separator.
///
member x.SequenceSeparator
with get () = x.format.SequenceSeparator
and set sep = x.format.SequenceSeparator <- sep
///
/// Gets or sets whether top-level sequences should be serialized using the custom separator.
///
member x.UseCustomTopLevelSequenceSeparator
with get () = x.format.UseCustomTopLevelSequenceSeparator
and set e = x.format.UseCustomTopLevelSequenceSeparator <- e
///
/// BSON pickler instance.
///
type BsonSerializer([] ?typeConverter) =
inherit FsPicklerSerializer(new BsonPickleFormatProvider(), ?typeConverter = typeConverter)
/// FsPickler static methods.
type FsPickler =
///
/// Initializes a new Json pickler instance.
///
/// indent out Json pickles.
/// omit FsPickler header in Json pickles.
/// specify a custom type name converter.
static member CreateJson([] ?indent, [] ?omitHeader, [] ?typeConverter) =
new JsonSerializer(?indent = indent, ?omitHeader = omitHeader, ?typeConverter = typeConverter)
///
/// Initializes a new Bson pickler instance.
///
/// specify a custom type name converter.
static member CreateBson([] ?typeConverter) =
new BsonSerializer(?typeConverter = typeConverter)