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  }