github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/system/scripts/bind/storage.go (about)

     1  // This file is part of the Smart Home
     2  // Program complex distribution https://github.com/e154/smart-home
     3  // Copyright (C) 2016-2023, Filippov Alex
     4  //
     5  // This library is free software: you can redistribute it and/or
     6  // modify it under the terms of the GNU Lesser General Public
     7  // License as published by the Free Software Foundation; either
     8  // version 3 of the License, or (at your option) any later version.
     9  //
    10  // This library is distributed in the hope that it will be useful,
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    13  // Library General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU Lesser General Public
    16  // License along with this library.  If not, see
    17  // <https://www.gnu.org/licenses/>.
    18  
    19  package bind
    20  
    21  import (
    22  	"github.com/e154/smart-home/system/storage"
    23  )
    24  
    25  // StorageBind ...
    26  type StorageBind struct {
    27  	storage *storage.Storage
    28  }
    29  
    30  // NewStorageBind ...
    31  func NewStorageBind(
    32  	storage *storage.Storage) *StorageBind {
    33  	return &StorageBind{
    34  		storage: storage,
    35  	}
    36  }
    37  
    38  // Search ...
    39  func (s *StorageBind) Search(name string) (result map[string]string) {
    40  	result = make(map[string]string)
    41  	storRes := s.storage.Search(name)
    42  	for k, v := range storRes {
    43  		result[k] = v
    44  	}
    45  	return
    46  }
    47  
    48  // Push ...
    49  func (s *StorageBind) Push(name string, val string) (err error) {
    50  	return s.storage.Push(name, val)
    51  }
    52  
    53  // GetByName ...
    54  func (s *StorageBind) GetByName(name string) string {
    55  	b, _ := s.storage.GetByName(name)
    56  	return b
    57  }
    58  
    59  // Pop ...
    60  func (s *StorageBind) Pop(name string) string {
    61  	b, _ := s.storage.Pop(name)
    62  	return b
    63  }