# workaround for "error\[E0283\]: type annotations needed" (tor-circmgr 0.28)

**URL:** https://forum.torproject.org/t/workaround-for-error-e0283-type-annotations-needed-tor-circmgr-0-28/18270
**Category:** Arti Development
**Tags:** arti
**Created:** [April 7, 2025, 12:03pm UTC](https://forum.torproject.org/t/workaround-for-error-e0283-type-annotations-needed-tor-circmgr-0-28/18270 "2025-04-07T12:03:43Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Protium\_serratum](https://forum.torproject.org/letter_avatar_proxy/v4/letter/p/eb8c5e/32.png) [@Protium\_serratum](https://forum.torproject.org/u/Protium_serratum)
#### Post date: [April 7, 2025, 12:03pm UTC](https://forum.torproject.org/t/workaround-for-error-e0283-type-annotations-needed-tor-circmgr-0-28/18270/1 "2025-04-07T12:03:43Z")

</div>

1. copy tor-circmgr 0.28 to somewhere, then apply this patch ( [tor-circmgr: Explicit type annotation (!2886) · Merge requests · The Tor Project / Core / Arti · GitLab](https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2886) ):

```auto
--- a/tor-circmgr-0.28.0/src/timeouts/pareto.rs
+++ b/tor-circmgr-0.28.0/src/timeouts/pareto.rs
@@ -630,7 +630,7 @@
     }
 
     fn learning_timeouts(&self) -> bool {
- self.p.use_estimates && self.history.n_times() < self.p.min_observations.into()
+ self.p.use_estimates && self.history.n_times() < usize::from(self.p.min_observations)
     }
 
     fn build_state(&mut self) -> Option<ParetoTimeoutState> {

```

1. add a `[patch]`section in `Cargo.toml

```auto
[patch.crates-io]
tor-circmgr = { path = "../path/to/tor-circmgr" }

```
