# Outline a bunch of methods in gpui that leaked SubscriberSet types \(\#7430\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/1446fb7632d93c9cee5a43ff8b801edf2a1a7382)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 1446fb7632d93c9cee5a43ff8b801edf2a1a7382

Requested commit: 1446fb7632d93c9cee5a43ff8b801edf2a1a7382

Commit: 1446fb7632d93c9cee5a43ff8b801edf2a1a7382

Tree: 967b1bb6cbb402a63bf801a22bf330e7c2dea404

Author: Piotr Osiewicz

Committer: GitHub

## Message

```
Outline a bunch of methods in gpui that leaked SubscriberSet types (#7430)

This takes down LLVM IR size of theme_selector from 316k to ~250k. Note
that I do not care about theme_selector in particular, though it acts as
a benchmark for smaller crates to me ("how much static overhead in
compile time does gpui have").

The title is a bit dramatic, so just to shed some light: by leaking a
type I mean forcing downstream crates to codegen it's methods/know about
it's drop code. Since SubscriberSet is no longer used directly in the
generic (==inlineable) methods, users no longer have to codegen `insert`
and co.

Release Notes:

- N/A
```

## Parents

- [c591681bad394ee8d956b7a1940036c4791b4910](https://git.cafe/gitcafe/zed/commit/c591681bad394ee8d956b7a1940036c4791b4910?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/1446fb7632d93c9cee5a43ff8b801edf2a1a7382?format=markdown)
