github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/core/charm/adapter.go (about) 1 // Copyright 2023 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package charm 5 6 import "github.com/juju/charm/v12" 7 8 func NewCharmInfoAdapter(meta EssentialMetadata) charmInfoAdapter { 9 return charmInfoAdapter{meta: meta} 10 } 11 12 // charmInfoAdapter wraps an EssentialMetadata object and implements the 13 // charm.Charm interface so it can be passed to state.AddCharm. 14 type charmInfoAdapter struct { 15 meta EssentialMetadata 16 } 17 18 func (adapter charmInfoAdapter) Meta() *charm.Meta { 19 return adapter.meta.Meta 20 } 21 22 func (adapter charmInfoAdapter) Manifest() *charm.Manifest { 23 return adapter.meta.Manifest 24 } 25 26 func (adapter charmInfoAdapter) Config() *charm.Config { 27 return adapter.meta.Config 28 } 29 30 func (adapter charmInfoAdapter) LXDProfile() *charm.LXDProfile { 31 return nil // not part of the essential metadata 32 } 33 34 func (adapter charmInfoAdapter) Metrics() *charm.Metrics { 35 return nil // not part of the essential metadata 36 } 37 38 func (adapter charmInfoAdapter) Actions() *charm.Actions { 39 return nil // not part of the essential metadata 40 } 41 42 func (adapter charmInfoAdapter) Revision() int { 43 return 0 // not part of the essential metadata 44 }