// Copyright 2024 Matthew Rich . All rights reserved. package data import ( "errors" "net/url" ) var ( ErrInvalidURI error = errors.New("Invalid URI") ) type Identifier interface { URI() string SetURI(string) error SetParsedURI(*url.URL) error } type DocumentElement interface { Identifier } type Selector[Item comparable] func(r Item) bool type ResourceSelector Selector[Resource] type DeclarationSelector Selector[Declaration] type BlockSelector Selector[Block] type ElementSelector Selector[DocumentElement]