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 }