Skip to content

Conversation

@Trouv
Copy link
Owner

@Trouv Trouv commented Dec 23, 2025

Now we have some generic composition functions for iterators that implement Extend. AffectMany doesn't implement Extend, but it could if its internal iterator does, allowing it to be used in these new generic functions. This change does that implementation.

@Trouv Trouv merged commit 708313a into main Dec 23, 2025
5 checks passed
@Trouv Trouv deleted the feat/affect-many-extend branch December 23, 2025 00:12
Trouv added a commit that referenced this pull request Dec 26, 2025
🤖 I have created a release *beep* *boop*
---


## 0.1.0 (2025-12-26)


### Features

* add `-Resource` related `Command` effects
([#14](#14))
([a5700d6](a5700d6))
* add `AffectOrHandle` effect and `Result` implementation
([#25](#25))
([d94dad2](d94dad2))
* add `AssetServerLoadAnd` effect
([#39](#39))
([dea9772](dea9772))
* add `CommandQueue` effect
([#13](#13))
([1362950](1362950))
* add `CommandSpawnAnd` effect
([#20](#20))
([5f2c04b](5f2c04b))
* add `EntityCommandDespawn` effect
([#21](#21))
([bec00cf](bec00cf))
* add `EntityCommandInsert` and `EntityCommandRemove` effects
([#18](#18))
([dfd2e02](dfd2e02))
* add `EntityCommandQueue` effect
([#17](#17))
([db6bdea](db6bdea))
* add `EntityComponentsPut` and `EntityComponentsWith` effects
([#11](#11))
([417a71c](417a71c))
* add `EventSend` effect for writing to `EventWriter`
([#4](#4))
([2b6a543](2b6a543))
* add `IterEffect` effect and add `Vec` and `Option` implementations
([#24](#24))
([de3e6a2](de3e6a2))
* add `ResWith` effect for transforming a resource with a function
([#2](#2))
([a5d7de2](a5d7de2))
* add and_combine system combinator
([#36](#36))
([49b935b](49b935b))
* add and_compose pipe combinator for piping into other systems and
composing effects
([814f9af](814f9af))
* add basic EffectOut composition methods
([#43](#43))
([b9ae369](b9ae369))
* add book with outline
([#53](#53))
([5b74ba2](5b74ba2))
* add CommandTrigger Effect
([#70](#70))
([0fc84f6](0fc84f6))
* add common effect composition functions for use with and_compose"
([#33](#33))
([c21d204](c21d204))
* add ComponentsPut and ComponentsWith effects
([#7](#7))
([3474927](3474927))
* add effect_out constructor
([#34](#34))
([660a74d](660a74d))
* add EffectOut to allow simultaneous piping of normal output
([df0639f](df0639f))
* add EffectOut::and_extend method
([#68](#68))
([243d118](243d118))
* add EffectOut::from_out
([#89](#89))
([95671e0](95671e0))
* add EffectOut::map_effect
([#88](#88))
([800515f](800515f))
* add extend effect composition function
([#66](#66))
([c61e4ee](c61e4ee))
* add in_and_extend system combinator
([#67](#67))
([6dbf5f1](6dbf5f1))
* add in_and_extend to prelude
([#72](#72))
([2200014](2200014))
* add mapping methods for AffectOrHandle
([#31](#31))
([0c89d0f](0c89d0f))
* add module functions for constructing all effects
([#30](#30))
([869b70f](869b70f))
* add prelude module for common imports
([fe1c06e](fe1c06e))
* add pure system combinator opt-in compile-time read-only system checks
([#32](#32))
([1d9fe6a](1d9fe6a))
* **ci:** add mdbook tests to CI
([#54](#54))
([a9cfb06](a9cfb06))
* **ci:** publish book in CI
([#56](#56))
([113af44](113af44))
* convert crate to lib and move sample code to example
([725ca3c](725ca3c))
* define packages with more detail
([#85](#85))
([b658b1e](b658b1e))
* derive common traits for `ResPut`
([#3](#3))
([4b23951](4b23951))
* derive common traits for components effects
([#10](#10))
([9aa3d69](9aa3d69))
* derive common traits for EffectOut
([#42](#42))
([5dea2ac](5dea2ac))
* impl Effect for tuples
([e37e15d](e37e15d))
* implement `Effect` for `Either`
([#23](#23))
([4c03d35](4c03d35))
* implement `Effect` for unit type `()`
([#19](#19))
([40c12ce](40c12ce))
* implement EffectOut conversion from generic Effects
([2cbdee9](2cbdee9))
* implement Extend for AffectMany
([#69](#69))
([708313a](708313a))
* implement FromIterator for EffectOut
([#65](#65))
([7aa2904](7aa2904))
* implement initial failed prototype of SideEffects
([033f0be](033f0be))
* implement IntoIterator for AffectMany
([#46](#46))
([0d8bb0a](0d8bb0a))
* improve naming and documentation of system combinators
([#44](#44))
([7aa73d1](7aa73d1))
* license repository with either mit apache according to rust ecosystem
standard
([7c2bb6d](7c2bb6d))
* make Effect derivable
([#37](#37))
([ea8d1a8](ea8d1a8))
* make Effect::affect mutably borrow the system param
([e654606](e654606))
* minimize bevy dependencies
([#55](#55))
([6ea787f](6ea787f))
* parameterize system combinators with Into<EffectOut> piping
([39c0fce](39c0fce))
* prototype effect systems with piping
([5a83ea6](5a83ea6))
* rename crate to bevy_pipe_affect
([bdc434c](bdc434c))
* reuse Result effect for EntityComponentsSet- error handling
([#82](#82))
([cff44f9](cff44f9))
* upgrade dependencies, including bevy 0.16
([#12](#12))
([4a034ec](4a034ec))
* upgrade to bevy 0.17
([#29](#29))
([f71a384](f71a384))
* upgrade to rust edition 2024
([#38](#38))
([6c5b32d](6c5b32d))
* use no bevy features by default
([#83](#83))
([00e8b0a](00e8b0a))


### Bug Fixes

* add bevy compatibility chart to README.md
([#81](#81))
([e909ce6](e909ce6))
* **book:** add dummy README.md
([#58](#58))
([18c99b6](18c99b6))
* **ci:** give publish-book workflow write permissions
([#57](#57))
([bcb5e17](bcb5e17))
* copy rainbow_clear_color example into README.md
([#92](#92))
([cbeb18d](cbeb18d))
* describe documentation and add links in api reference
([#79](#79))
([aba2aea](aba2aea))
* document feature flags
([#90](#90))
([3f0aba7](3f0aba7))
* feature-flag derive tests
([#40](#40))
([8f9209c](8f9209c))
* move release-please config to config file
([#52](#52))
([7de56fc](7de56fc))
* move release-please configuration from job to config
([0591eb3](0591eb3))
* note that variadics_please and either are already included by bevy
([#84](#84))
([85d6181](85d6181))
* prepare README.md for release
([#93](#93))
([761ac26](761ac26))
* test no-default-features in CI test job
([#41](#41))
([f27da2f](f27da2f))


### Book Changes

* add chapter that redirects to api reference
([#78](#78))
([043ddcd](043ddcd))
* complete introduction
([#77](#77))
([03f8835](03f8835))
* describe documentation and add links in README.md
([#80](#80))
([c2371aa](c2371aa))
* share blurb between book and api ref
([#76](#76))
([e9ddec4](e9ddec4))
* write 'Output and Effect Composition' chapter
([#74](#74))
([e330185](e330185))
* write 'Spawn a Relationship Synchronously' chapter
([#64](#64))
([ee1f8ab](ee1f8ab))
* write 'Spawn and Trigger an Observer' chapter
([#87](#87))
([48dc336](48dc336))
* write motivations chapter
([#61](#61))
([29d9d8e](29d9d8e))


### Example Changes

* add observer example
([#86](#86))
([c4b8862](c4b8862))
* add relationship example
([#62](#62))
([abfe3af](abfe3af))
* add sokoban example
([#71](#71))
([5bb73b6](5bb73b6))
* require bevy default features for examples
([#63](#63))
([27c4e91](27c4e91))


### CI Changes

* add basic CI for test/clippy/fmt based off bevy template
([e041d28](e041d28))
* add basic release-please workflow
([#49](#49))
([b8f88e1](b8f88e1))
* add more changelog-sections for representing non-src changes in
changelog ([#59](#59))
([98f5719](98f5719))
* add rustfmt.toml to enforce some custom formatting rules in eventual
CI
([5e12c38](5e12c38))
* add test section to release-please-config
([#60](#60))
([2b1e0c3](2b1e0c3))
* deny cargo doc warnings via new doc_check CI job
([#1](#1))
([ffeb0b7](ffeb0b7))
* enable all-features in doc_check job
([#91](#91))
([b379d25](b379d25))
* format code in doc comments
([8b314d0](8b314d0))
* install bevy system dependencies for book jobs
([#75](#75))
([2522ea9](2522ea9))
* invert and correct error check in doc_check CI job
([ccb64c6](ccb64c6))
* just deny rustdoc lints instead of attempting bash solution
([849b0a0](849b0a0))
* separate cargo doc and warning check into separate steps in doc_check
job
([241c10a](241c10a))
* upgrade mdbook to 0.4.52 and mdbook-keeper to 0.5.0
([#73](#73))
([29a1d8c](29a1d8c))


### Test Changes

* add basic proptest for ResPut effect
([0d9f6f8](0d9f6f8))
* add proptest dependency
([b48eda1](b48eda1))
* create `OneWayFn` test utility for function generation with `proptest`
([#6](#6))
([1d72444](1d72444))
* extract common `ComponentsWith` test functions
([#9](#9))
([6b0ebb5](6b0ebb5))
* move `Number`- test types to their own module
([#8](#8))
([2a144aa](2a144aa))
* use bigger number type for test `NumberResource`
([#5](#5))
([f4b8868](f4b8868))
* use EffectOut and and_compose in main sample
([042ee8c](042ee8c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants