code: func NewTrapServer(args ServerArguments) (*TrapServer, error) {
  	if err := args.validate(); err != nil {
  		return nil, err
  	}
  	args.setDefault()
  
  	return &TrapServer{
  		args: &args,
  		mps: map[SNMPVersion]messageProcessing{
  			V2c: newMessageProcessing(V2c),
  			V3:  newMessageProcessing(V3),
  		},
  		secs: map[SNMPVersion]*securityMap{
  			V2c: newSecurityMap(),
  			V3:  newSecurityMap(),
  		},
  		transport: newTransport(&args),
  	}, nil
  }
docs: // NewTrapServer returns a new Server and is using server arguments for configuration.