Init initializes a new storage backend with the driver d. If d is nil, the default in-memory driver is used.
(d driver.Driver)
| 331 | // Init initializes a new storage backend with the driver d. |
| 332 | // If d is nil, the default in-memory driver is used. |
| 333 | func Init(d driver.Driver) *Storage { |
| 334 | // default driver is in memory |
| 335 | if d == nil { |
| 336 | d = driver.NewMemory() |
| 337 | } |
| 338 | s := &Storage{ |
| 339 | Driver: d, |
| 340 | } |
| 341 | |
| 342 | var h slog.Handler |
| 343 | // Get logger from driver if it implements the LoggerSetterGetter interface |
| 344 | if ls, ok := d.(logging.LoggerSetterGetter); ok { |
| 345 | h = ls.Logger().Handler() |
| 346 | } else { |
| 347 | // If the driver does not implement the LoggerSetterGetter interface, set the default logger |
| 348 | h = slog.Default().Handler() |
| 349 | } |
| 350 | s.SetLogger(h) |
| 351 | return s |
| 352 | } |
searching dependent graphs…