/// <summary> /// Creates a new <see cref="ICityHash" /> instance with given configuration. /// </summary> /// <param name="config">The configuration to use.</param> /// <returns> /// A <see cref="ICityHash" /> instance. /// </returns> /// <exception cref="ArgumentNullException"><paramref name="config"/></exception> public ICityHash Create(ICityHashConfig config) { if (config == null) { throw new ArgumentNullException(nameof(config)); } return(new CityHash_Implementation(config)); }
public CityHash_Implementation(ICityHashConfig config) { if (config == null) { throw new ArgumentNullException(nameof(config)); } _config = config.Clone(); if (!_validHashSizes.Contains(_config.HashSizeInBits)) { throw new ArgumentOutOfRangeException($"{nameof(config)}.{nameof(config.HashSizeInBits)}", _config.HashSizeInBits, $"{nameof(config)}.{nameof(config.HashSizeInBits)} must be contained within CityHash.ValidHashSizes."); } }