<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Privacy on ErrorVault — Developer Error Code Dictionary</title><link>https://errorvault.dev/tags/privacy/</link><description>Recent content in Privacy on ErrorVault — Developer Error Code Dictionary</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 26 Apr 2026 03:08:04 +0800</lastBuildDate><atom:link href="https://errorvault.dev/tags/privacy/feed.xml" rel="self" type="application/rss+xml"/><item><title>Fix E0519: Private Type in Function Return Type</title><link>https://errorvault.dev/rust/rust-e0519-private-type-in-return-type/</link><pubDate>Sun, 26 Apr 2026 03:08:04 +0800</pubDate><guid>https://errorvault.dev/rust/rust-e0519-private-type-in-return-type/</guid><description>&lt;h2 id="1-symptoms">1. Symptoms&lt;/h2>
&lt;p>Error E0519 is a Rust compiler error that appears when you define a public function but the function&amp;rsquo;s return type references a type that is not accessible outside its defining module. The compiler prevents this because it would create an unusable API—callers would have no way to use the return value if they cannot see its type.&lt;/p>
&lt;p>The error message in Rust looks like this:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-mysql" data-lang="mysql">&lt;span style="display:flex;">&lt;span>error[E0519]: private type &lt;span style="color:#ff79c6">`&lt;/span>InnerStruct&lt;span style="color:#ff79c6">`&lt;/span> &lt;span style="color:#ff79c6">in&lt;/span> &lt;span style="color:#ff79c6">return&lt;/span> type of this function
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">--&amp;gt;&lt;/span> src&lt;span style="color:#ff79c6">/&lt;/span>lib.rs:&lt;span style="color:#bd93f9">9&lt;/span>:&lt;span style="color:#bd93f9">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">|&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#bd93f9">9&lt;/span> &lt;span style="color:#ff79c6">|&lt;/span> pub fn &lt;span style="color:#50fa7b">get_inner&lt;/span>() &lt;span style="color:#ff79c6">-&amp;gt;&lt;/span> InnerStruct {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">|&lt;/span> &lt;span style="color:#ff79c6">^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;/span> private type &lt;span style="color:#ff79c6">in&lt;/span> &lt;span style="color:#ff79c6">return&lt;/span> type
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">|&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>note: &lt;span style="color:#ff79c6">`&lt;/span>InnerStruct&lt;span style="color:#ff79c6">`&lt;/span> &lt;span style="color:#ff79c6">is&lt;/span> private &lt;span style="color:#ff79c6">to&lt;/span> this module
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">--&amp;gt;&lt;/span> src&lt;span style="color:#ff79c6">/&lt;/span>lib.rs:&lt;span style="color:#bd93f9">1&lt;/span>:&lt;span style="color:#bd93f9">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">|&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#bd93f9">1&lt;/span> &lt;span style="color:#ff79c6">|&lt;/span> struct InnerStruct {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">|&lt;/span> &lt;span style="color:#ff79c6">^^^^^^^^^^^^^^^^^^&lt;/span> private struct
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The compiler explicitly tells you which type is private and where it is defined. In this example, &lt;code>InnerStruct&lt;/code> is marked &lt;code>struct&lt;/code> (implicitly private) at line 1, but &lt;code>get_inner()&lt;/code> is marked &lt;code>pub fn&lt;/code> at line 9. This combination is invalid because external code cannot construct or interact with the return value.&lt;/p></description></item></channel></rss>