| 157 | } |
| 158 | |
| 159 | func validateConfig(cfg *Config) error { |
| 160 | if cfg == nil { |
| 161 | return errors.New("config should be non-nil") |
| 162 | } |
| 163 | |
| 164 | if cfg.WAL == nil { |
| 165 | return errors.New("wal config should be non-nil") |
| 166 | } |
| 167 | |
| 168 | if cfg.Block == nil { |
| 169 | return errors.New("block config should be non-nil") |
| 170 | } |
| 171 | |
| 172 | // WAL version always matches the block version |
| 173 | cfg.WAL.Version = cfg.Block.Version |
| 174 | |
| 175 | err := cfg.WAL.Validate() |
| 176 | if err != nil { |
| 177 | return fmt.Errorf("wal config validation failed: %w", err) |
| 178 | } |
| 179 | |
| 180 | err = common.ValidateConfig(cfg.Block) |
| 181 | if err != nil { |
| 182 | return fmt.Errorf("block config validation failed: %w", err) |
| 183 | } |
| 184 | |
| 185 | _, err = encoding.FromVersionForWrites(cfg.Block.Version) |
| 186 | if err != nil { |
| 187 | return fmt.Errorf("block version validation failed: %w", err) |
| 188 | } |
| 189 | |
| 190 | return nil |
| 191 | } |