StructMatcher

2.0.1

Evaluate declarative rule sets against nested structured data and return matching results. Supports JSON, hashtables, PSCustomObjects, and iterable rule collections.

Minimum PowerShell version

5.1

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name StructMatcher

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name StructMatcher

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2026 Peter Kaagman. Licensed under MIT License.

Package Details

Author(s)

  • Peter Kaagman

Tags

PowerShell StructMatcher RuleEngine Conditions Rules JSON Hashtable PSCustomObject

Functions

Invoke-StructMatcher

Dependencies

This module has no dependencies.

Release Notes

Exports Invoke-StructMatcher for evaluating conditions against nested structures.

2.0.1
- Refactored internal rule evaluation.
- Public API reduced to Invoke-StructMatcher.
- Added support for Hashtables, PSCustomObjects, and JSON text as input.

1.0.1
- Initial release
- Outer loop for rule evaluation not within the function, but rather in the calling context.
- Input data is expected to be a hashtable or PSCustomObject.

FileList

  • StructMatcher.nuspec
  • LICENSE
  • .git\HEAD
  • .git\hooks\pre-commit.sample
  • .git\info\exclude
  • .git\objects\3f\7fe6042df153891e8d510779432e78acbcbc40
  • .git\objects\92\60338a222a4b2c0490d8ecdc32d4e3ba4371f5
  • .git\objects\bb\f5d4960318437e33dfb1540763191a6c9f2f99
  • .git\objects\eb\0f2563a1386ea3020776f3f1fc91c9ae4c6d25
  • README.md
  • .git\index
  • .git\hooks\pre-merge-commit.sample
  • .git\logs\HEAD
  • .git\objects\41\a65b88fc34a9cb317526012fcae7e10d2fe516
  • .git\objects\92\c2e78feb7f16bbf57bc29a540b473994a87e13
  • .git\objects\c1\fd9fb5cb57bbcae42cf461e60a938e289490bd
  • .git\objects\f4\5fb27f26c2995b29de85e07266427648d99d35
  • .git\ORIG_HEAD
  • .git\hooks\pre-push.sample
  • Tests\Data\Rules.json
  • .git\objects\54\1568778ed2b7d60d2746ea0c3c59cb279b205d
  • .git\objects\98\f4324952782264d6ba1c95b002feeb6deb504f
  • .git\objects\ce\2bc28d62b7b23634ea479c1f9ea0caeffa3e7c
  • .git\refs\heads\main
  • StructMatcher.psd1
  • Tests\StructMatcher.Tests.ps1
  • .git\hooks\pre-rebase.sample
  • .git\objects\05\a0661ead3776eaccf4c5200c99ad848d08aaad
  • .git\objects\58\ffb980b916a627b35c9ab8f4b42af517ac67a1
  • .git\objects\9e\0f73608ce04ee7f36a2fe58476ab6f05806106
  • .git\objects\cf\b09edf28b5e6300f88954d8e4a619edb4d1472
  • .git\logs\refs\heads\main
  • StructMatcher.psm1
  • .git\hooks\applypatch-msg.sample
  • .git\hooks\pre-receive.sample
  • .git\objects\11\b89b580296fb762bfc80210e03eb3b52f35ef3
  • .git\objects\79\ab3ff78ea78c0632f5d5ad24b3a39b4fb7a910
  • .git\objects\9e\70a60436c49c1b71cc436a60ec32cfe6ad666a
  • .git\objects\da\fd216a5f123ef5b0a8912ae0c604e5a7945ea9
  • .git\refs\remotes\origin\HEAD
  • .git\COMMIT_EDITMSG
  • .git\hooks\commit-msg.sample
  • .git\hooks\prepare-commit-msg.sample
  • .git\objects\20\fd46eb274c174dd1e8bb6aced2783361aa655d
  • .git\objects\85\d8737d02effe8a46efb2776b9a3ab7ad3e1c5c
  • .git\objects\a0\8895c46ded9f6b45da4082b9dfdfbc879d1503
  • .git\objects\db\bae92152e9e783cbbd8df28275311a8a8b1b03
  • .git\refs\remotes\origin\main
  • .git\config
  • .git\hooks\fsmonitor-watchman.sample
  • .git\hooks\push-to-checkout.sample
  • .git\objects\23\3aa56c50885145dce606592f64a25553491d91
  • .git\objects\86\4938ae903ef869774e245864c0c0e78d555e80
  • .git\objects\a2\715bfe12397585749599295d8f0c3ba18df7ba
  • .git\objects\dd\9ba180ae7efdfd25a1b11af1b0bc5e92baca22
  • .git\logs\refs\remotes\origin\HEAD
  • .git\description
  • .git\hooks\post-update.sample
  • .git\hooks\sendemail-validate.sample
  • .git\objects\27\0bb86c1f15e1eade6778d6c61cb3125b35147d
  • .git\objects\90\7c550b1b22a04746c744c605459467f6566192
  • .git\objects\a3\41f0b2c91b84eb27cdd36dad5296e93cd710a6
  • .git\objects\df\55c21344d2bc1eec66bde50462a2cb62652c38
  • .git\logs\refs\remotes\origin\main
  • .git\FETCH_HEAD
  • .git\hooks\pre-applypatch.sample
  • .git\hooks\update.sample
  • .git\objects\2e\df91f2cbf7e3865ca73e9bcc78e243cff53a8b
  • .git\objects\91\34d5036002be75aa8a88bcb468f9e8652204da
  • .git\objects\bb\28ac69a6485d50ec1646d30b8f8463b0a553e5
  • .git\objects\e1\7d3cb9c46b6a40c351ae149580a80d03463d6c

Version History

Version Downloads Last updated
2.0.1 (current version) 6 9/5/2026