text: 'use strict';
  
  const SchemaTypeOptions = require('./SchemaTypeOptions');
  
  /**
   * The options defined on a Map schematype.
   *
   * ####Example:
   *
   *     const schema = new Schema({ socialMediaHandles: { type: Map, of: String } });
   *     schema.path('socialMediaHandles').options; // SchemaMapOptions instance
   *
   * @api public
   * @inherits SchemaTypeOptions
   * @constructor SchemaMapOptions
   */
  
  class SchemaMapOptions extends SchemaTypeOptions {}
  
  const opts = require('./propertyOptions');
  
  /**
   * If set, specifies the type of this map's values. Mongoose will cast
   * this map's values to the given type.
   *
   * If not set, Mongoose will not cast the map's values.
   *
   * ####Example:
   *
   *     // Mongoose will cast `socialMediaHandles` values to strings
   *     const schema = new Schema({ socialMediaHandles: { type: Map, of: String } });
   *     schema.path('socialMediaHandles').options.of; // String
   *
   * @api public
   * @property of
   * @memberOf SchemaMapOptions
   * @type Function|string
   * @instance
   */
  
  Object.defineProperty(SchemaMapOptions.prototype, 'of', opts);
  
  module.exports = SchemaMapOptions;