From 35f24627f0c0ee9113afa49a1ab106d72875e3be Mon Sep 17 00:00:00 2001 From: aarifullin Date: Tue, 31 Oct 2023 01:52:04 +0300 Subject: [PATCH] [#13] chain: Introduce ChainID type Signed-off-by: aarifullin --- chain.go | 5 +++++ inmemory.go | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/chain.go b/chain.go index 08779a7..922f5d8 100644 --- a/chain.go +++ b/chain.go @@ -13,7 +13,12 @@ type Engine interface { IsAllowed(name Name, namespace string, r Request) (Status, bool) } +// ChainID is the ID of rule chain. +type ChainID string + type Chain struct { + ID ChainID + Rules []Rule } diff --git a/inmemory.go b/inmemory.go index ca1055f..4351489 100644 --- a/inmemory.go +++ b/inmemory.go @@ -1,9 +1,12 @@ package policyengine +import "sync/atomic" + type inmemory struct { - namespace map[Name][]chain - resource map[Name][]chain - local map[Name][]*Chain + chainCounter atomic.Uint32 + namespace map[Name][]chain + resource map[Name][]chain + local map[Name][]*Chain } type chain struct {