package optionsparser import "context" // Parser creates Options instances type Parser struct { config *Config // Parser configuration presets map[string][]urlOption // Parsed presets } // New creates new Parser instance func New(ctx context.Context, config *Config) (*Parser, error) { if err := config.Validate(); err != nil { return nil, err } p := &Parser{ config: config, presets: make(map[string][]urlOption), } if err := p.parsePresets(); err != nil { return nil, err } if err := p.validatePresets(ctx); err != nil { return nil, err } return p, nil } func (p *Parser) IsSecurityOptionsAllowed(ctx context.Context) error { if p.config.AllowSecurityOptions { return nil } return newSecurityOptionsError(ctx) }