<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>「pub」タグの記事一覧｜Rust Tech</title>
	<atom:link href="https://rust-tech.nkhn37.net/tag/pub/feed/" rel="self" type="application/rss+xml" />
	<link>https://rust-tech.nkhn37.net</link>
	<description>Rustプログラミング学習サイト</description>
	<lastBuildDate>Fri, 20 Mar 2026 23:05:45 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://rust-tech.nkhn37.net/wp-content/uploads/2025/06/cropped-lion-preasure-clear-32x32.png</url>
	<title>「pub」タグの記事一覧｜Rust Tech</title>
	<link>https://rust-tech.nkhn37.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Rust入門】モジュールの可視性の基本を分かりやすく解説</title>
		<link>https://rust-tech.nkhn37.net/rust-modules-visibility-basic/</link>
					<comments>https://rust-tech.nkhn37.net/rust-modules-visibility-basic/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Fri, 16 Jan 2026 20:00:00 +0000</pubDate>
				<category><![CDATA[Rust入門]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[pub]]></category>
		<category><![CDATA[use]]></category>
		<category><![CDATA[モジュール]]></category>
		<category><![CDATA[可視性]]></category>
		<guid isPermaLink="false">https://rust-tech.nkhn37.net/?p=1565</guid>

					<description><![CDATA[Rust のモジュールの可視性の基本を初心者にも分かりやすく解説します。 Rust のモジュールの可視性 Rust では、コードを整理して安全性を高めるために「モジュール」と「可視性（visibility）」という仕組み [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Rust の<span class="jinr-d--text-color d--marker1 d--bold">モジュールの可視性</span>の基本を初心者にも分かりやすく解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Rust のモジュールの可視性</h2>



<p class="wp-block-paragraph">Rust では、コードを整理して安全性を高めるために「<span class="jinr-d--text-color d--marker1 d--bold">モジュール</span>」と「<span class="jinr-d--text-color d--marker1 d--bold">可視性（visibility）</span>」という仕組みが用意されています。この仕組みの中でも「<span class="jinr-d--text-color d--marker1 d--bold"><code>pub</code></span>」は、モジュール間やクレート間での参照をうまく制御するための重要なキーワードです。</p>



<p class="wp-block-paragraph">Rust は、安全性を高めるため「<span class="jinr-d--text-color d--marker1 d--bold">モジュール外から参照できる要素はデフォルトで非公開</span>」となっているという特徴があります。そのため、外部に公開したいものには <code>pub</code> をつけて開発者が明示的に公開範囲を示す必要があります。</p>



<p class="wp-block-paragraph">この記事では、Rust のモジュール構造を説明しながら、<code>pub</code> を中心とした可視性の仕組みを初心者にも分かりやすく紹介します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Rust のモジュールとは</h3>



<p class="wp-block-paragraph">Rust では、コードを階層的に分割し、相互の機能を隠ぺい、公開するための強力な<span class="jinr-d--text-color d--marker1 d--bold">モジュール</span>システムがあります。モジュールは、関数、構造体、定数などを論理的にまとめることができ、<span class="jinr-d--text-color d--marker1 d--bold"><code>mod</code></span> キーワードを使って以下のように定義します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// ファイル内でのモジュール定義例
mod sample_mod {
    // 公開関数
    pub fn hello() {
        println!("[sample_mod] 公開関数");
    }
}

fn main() {
    println!("===== ファイル内でのモジュール定義例 =====");
    sample_mod::hello();
}</pre>



<p class="wp-block-paragraph">この <code>sample_mod</code> モジュールは、<code>main.rs</code> のファイル内で定義されているモジュールであるとします。例では、<code>sample_mod</code> に <code>hello()</code> という関数が定義されていることを意味します。</p>



<h3 class="wp-block-heading jinr-heading d--bold"><code>pub</code> による公開</h3>



<p class="wp-block-paragraph">Rust の大きな特徴として「<span class="jinr-d--text-color d--marker1 d--bold"><span class="jinr-d--text-color d--marker1 d--bold">モジュール外から参照できる要素はデフォルトで非公開</span></span>」となっています。そのため、<code>mod</code> で定義したモジュール内の要素をスコープ外に公開したい場合には、<span class="jinr-d--text-color d--marker1 d--bold"><code>pub</code></span> キーワードをつけて公開（<code>public</code>）であることを明示します。</p>



<p class="wp-block-paragraph">上記の例で「<code><span class="jinr-d--text-color d--marker1 d--bold">pub</span> fn hello() { ... }</code>」は、<code>mod</code> の <code>{}</code> で囲われたスコープの外に <code>hello()</code> 関数を公開していることを意味します。モジュール <code>sample_mod</code> は、名前空間として機能するため <code>main.rs</code> 内の関数（<code>main</code> 関数など）から、<code>hello()</code> 関数を使用するには、<code>sample_mod::hello()</code> のように「::」を使用して呼び出します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">デフォルトは<code>非公開</code></h3>



<p class="wp-block-paragraph">Rust の大きな特徴として「<span class="jinr-d--text-color d--marker1 d--bold">すべての要素はデフォルトで <code>private</code>（非公開）</span>」となっています。そのため、以下のように <code>mod</code> のスコープ外から内部で <code>pub</code> をつけずに定義した関数へアクセスしようとするとコンパイルエラーとなります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="9" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// ファイル内でのモジュール定義例
mod sample_mod {
    // 公開関数
    pub fn hello() {
        println!("[sample_mod] 公開関数");
        private_hello();
    }

    // 非公開関数
    fn private_hello() {
        println!("[sample_mod] 非公開関数");
    }
}

fn main() {
    println!("===== ファイル内でのモジュール定義例 =====");
    sample_mod::hello();
    // 以下の非公開関数の呼び出しはエラーになる
    // sample_mod::private_hello();
}</pre>



<p class="wp-block-paragraph">例では、<code>private_hello</code> は、非公開関数であり、<code>sample_mod</code> モジュールの中でしか使用できません。そのため、スコープ外の <code>main</code> 関数から呼び出すとコンパイルエラーとなります。</p>



<p class="wp-block-paragraph">一方で、<code>hello</code> 関数は、モジュール内の関数なので、この関数からは <code>private_hello</code> 関数へアクセスすることが可能です。このようにすることで、モジュールの外部に公開する関数を制御することが可能です。</p>



<div id="nkhn3-2795251271" class="nkhn3- nkhn3-entity-placement" style="margin-left: auto;margin-right: auto;text-align: center;"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9478001176347002"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-9478001176347002"
     data-ad-slot="4670569211"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div><h2 class="wp-block-heading jinr-heading d--bold">モジュールの分割と管理方法</h2>



<p class="wp-block-paragraph">Rust では、モジュール定義を <code>mod</code> 宣言により行いますが、その実体をファイルやディレクトリに分割することができます。Rust でよく使われるモジュール分割方法には次のようなものがあります。</p>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--simple-box1  "><div class="c--simple-box-inner">
<ul class="wp-block-list jinr-list">
<li>ファイル単位でモジュールを分割する方法</li>



<li>ファイルとディレクトリを組み合わせてサブモジュールを管理する方法</li>



<li><code>mod.rs</code> を使用する従来の方法（現在も使用可能）</li>
</ul>
</div></div></section>



<p class="wp-block-paragraph">以降では、基本的な方法から順に説明していきます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">ファイル単位でモジュールを分割する方法</h3>



<p class="wp-block-paragraph">まずは、基本となるファイル単位でモジュールを分割する方法を説明します。以下のように <code>main.rs</code> とは別に <code>module1.rs</code> を用意した例で紹介します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">src/
├── main.rs      // エントリポイント
└── module1.rs   // module1 モジュール</pre>



<p class="wp-block-paragraph">以下のようなプログラムを用いて詳細を説明します。</p>



<p class="wp-block-paragraph"><strong>[<code>main.rs</code>]</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// モジュール読み込み
mod module1; // ファイルで分割

fn main() {
    println!("\n===== ファイルで分割する例 (module1) =====");
    module1::hello();
    // 以下の非公開関数の呼び出しはエラーになる
    // module1::private_hello();
    module1::submod::hello();
    module1::submod::nested::nested_hello();
}</pre>



<p class="wp-block-paragraph"><strong>[<code>module1.rs</code>]</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// 公開関数
pub fn hello() {
    println!("[module1] 公開関数");
    private_hello();
    private_mod::hello();
}

// 非公開関数
fn private_hello() {
    println!("[module1] 非公開関数");
}

// 公開サブモジュール
pub mod submod {
    // サブモジュール内の公開関数
    pub fn hello() {
        println!("[module1::submod] サブモジュール内の公開関数");
        private_hello();
    }

    // サブモジュール内の非公開関数
    fn private_hello() {
        println!("[module1::submod] サブモジュール内の非公開関数");
    }

    // ネストされた公開サブモジュール
    pub mod nested {
        pub fn nested_hello() {
            println!("[module1::submod::nested] ネストされたサブモジュール内の公開関数");
        }
    }
}

// 非公開のサブモジュール
mod private_mod {
    pub fn hello() {
        println!("[module1::private_mod] 非公開のサブモジュール");
    }
}</pre>



<p class="wp-block-paragraph"><code>main.rs</code> で <code>module1</code> を使用するには、ファイルの先頭で次のように宣言します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">mod module1;</pre>



<p class="wp-block-paragraph">この宣言により、<code>module1.rs</code> は <code>module1</code> モジュールとして読み込まれて、<code>module1::関数名</code> のように公開要素を利用できるようになります。</p>



<p class="wp-block-paragraph"><code>module1.rs</code> 内では、複数の関数とサブモジュールを定義しています。<code>hello</code> 関数は、<code>pub</code> をつけて定義しているため、main.rs のような外部モジュールから呼び出すことができます。一方、<code>private_hello</code> 関数は <code>pub</code> をつけていないため、<code>module1</code> の内部からのみ利用可能です。</p>



<p class="wp-block-paragraph">また、モジュール内ではさらにサブモジュールを定義することができます。<code>submod</code> は、<code>module1</code> の公開サブモジュールであり、外部からもアクセス可能です。さらに、その中に <code>nested</code> のようなネストしたサブモジュールを定義することもできます。</p>



<p class="wp-block-paragraph">注意点として、サブモジュールも「<code>pub mod</code>」としない限り外部には公開されません。<code>private_mod</code> は、<code>pub</code> が付いていないため、<code>module1</code> の内部からしか利用できないモジュールです。</p>



<p class="wp-block-paragraph">このように、意味のある単位でモジュールを分割し、可視性を適切に制御することで、コードの構造を整理し、安全で見通しの良いプログラムを作成することができます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">ディレクトリでサブモジュールを管理する方法</h3>



<p class="wp-block-paragraph">プロジェクトが大きくなってきた際に、1 つのファイルにすべてのサブモジュールを定義すると構造が分かりにくくなります。そのような場合には、ディレクトリを使ってサブモジュールを分割すると構造が明確になり、保守性も向上します。</p>



<p class="wp-block-paragraph">以下のような構成を考えます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">src/
├── main.rs      // エントリポイント
├── module2.rs   // module2 モジュール
└── module2/
    ├── submod_1.rs  // サブモジュール1
    └── submod_2.rs  // サブモジュール2</pre>



<p class="wp-block-paragraph"><strong>[<code>main.rs</code>]</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// モジュール読み込み
mod module2; // ディレクトリでサブモジュールを管理する

fn main() {
    println!("\n===== ディレクトリでサブモジュールを管理する例 (module2) =====");
    module2::submod_1::hello();
    module2::submod_2::hello();
}
</pre>



<p class="wp-block-paragraph"><strong>[<code>module2.rs</code>]</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pub mod submod_1;
pub mod submod_2;</pre>



<p class="wp-block-paragraph"><strong>[<code>submod_1.rs</code>]</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// 公開関数
pub fn hello() {
    println!("[module2::submod_1] 公開関数");
    private_hello();
}

// 非公開関数
fn private_hello() {
    println!("[module2::submod_1] 非公開関数");
}</pre>



<p class="wp-block-paragraph"><strong>[<code>submod_2.rs</code>]</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// 公開関数
pub fn hello() {
    println!("[module2::submod_2] 公開関数");
    private_hello();
}

fn private_hello() {
    println!("[module2::submod_2] 非公開関数");
}</pre>



<p class="wp-block-paragraph">この構成では、<code>module2.rs</code> が <code>module2</code> モジュールのエントリーポイントになります。<code>module2</code> ディレクトリ配下に配置したファイルについては、<code>module2.rs</code> 内で <code>mod</code> 宣言することでサブモジュールとして読み込まれます。</p>



<p class="wp-block-paragraph">なお、ディレクトリにファイルを配置しただけでは、自動的にモジュールにはなりません。親モジュール側（この例では、<code>module2.rs</code>）で <code>mod</code> 宣言する必要がある点に注意してください。</p>



<h4 class="wp-block-heading jinr-heading d--bold"><code>mod.rs</code> を使用する従来の方法</h4>



<p class="wp-block-paragraph">以前の Rust では、ディレクトリをモジュールとして扱う場合、<span class="jinr-d--text-color d--marker1 d--bold"><code>mod.rs</code></span> を配置する方法が一般的でした。現在でも使用可能ですが、新規プロジェクトでは前述の「ファイル + ディレクトリ」を組み合わせた方法が使われることが多くなっています。</p>



<p class="wp-block-paragraph"><code>mod.rs</code> は以下のようにモジュール名のディレクトリ配下に配置します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">src/
├── main.rs      // エントリポイント
└── module3/
    ├── mod.rs       // module3 モジュール
    ├── submod_1.rs  // サブモジュール1
    └── submod_2.rs  // サブモジュール2</pre>



<p class="wp-block-paragraph"><strong>[<code>main.rs</code>]</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// モジュール読み込み
mod module3; // mod.rs を使用する従来の方法

fn main() {
    println!("\n===== mod.rs を使用する従来の方法例 (module3) =====");
    module3::submod_1::hello();
    module3::submod_2::hello();
}</pre>



<p class="wp-block-paragraph"><strong>[<code>mod.rs</code>]</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pub mod submod_1;
pub mod submod_2;</pre>



<p class="wp-block-paragraph"><code>submod_1.rs</code> と <code>submod_2.rs</code> は先ほどの例と同様なので省略します。</p>



<h3 class="wp-block-heading jinr-heading d--bold"><code>use</code> によるモジュールのスコープへの取り込み</h3>



<p class="wp-block-paragraph">これまでの例では、<code>module::submodule::function</code> のようにフルパスでモジュールの構成要素を呼び出していました。<code>use</code> を使うことで、指定した要素をスコープに取り込み、より簡潔に記述できます。</p>



<p class="wp-block-paragraph"><strong>[<code>main.rs</code>]</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="rust" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// モジュール読み込み
mod module1; // ファイルで分割
mod module2; // ディレクトリでサブモジュールを管理する

// use 宣言でモジュールをスコープに取り込む
use module1::submod::hello;
use module2::submod_1::hello as hello_module2_submod_1;

fn main() {
    println!("\n===== use 宣言でスコープに取り込む例 =====");
    hello();
    hello_module2_submod_1();
}
</pre>



<p class="wp-block-paragraph">同名の要素をスコープに取り込む場合には、<code>as</code> を使って別名をつける必要があります。</p>



<p class="wp-block-paragraph">なお、use は名前解決を簡単にするための仕組みであり、可視性に直接かかわるものではありません。モジュールを使用するためには、<code>mod</code> でモジュールを取り込む必要があることに注意してください。</p>



<h3 class="wp-block-heading jinr-heading d--bold">その他の <code>pub</code> の指定方法</h3>



<p class="wp-block-paragraph">これまでに紹介したように、基本的には <code>pub</code> を使った公開指定の方法とモジュール分割の方法を理解しておけば多くの場合では問題ありません。より細かく公開範囲を指定したい場合には、次のような指定方法も用意されています。</p>



<ul class="wp-block-list jinr-list">
<li><code>pub(super)</code>：親モジュールまで公開する</li>



<li><code>pub(in <em>path</em>)</code>：指定したモジュールパス (<code><em>path</em></code>) 内のみに公開</li>
</ul>



<p class="wp-block-paragraph">この記事では詳細な説明は省略しますが、公開範囲を段階的に制御できる仕組みがあるという点は押さえておいてください。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">Rust の<span class="jinr-d--text-color d--marker1 d--bold">モジュールの可視性</span>の基本について解説しました。</p>



<p class="wp-block-paragraph">Rust では、モジュール外から参照できる要素はデフォルトで非公開となっており、外部に公開したい関数や型には <code>pub</code> を付けて明示的に公開範囲を指定します。この仕組みにより、意図しない API の公開を防ぎ、安全で保守しやすいコードを書くことができます。</p>



<p class="wp-block-paragraph">また、モジュールは <code>mod</code> 宣言を用いて定義し、その実体をファイルやディレクトリに分割して管理することが可能です。プロジェクトの規模に応じて、ファイル単位やディレクトリ単位でモジュールを整理すると、コードの見通しが良くなります。</p>



<p class="wp-block-paragraph">さらに、<code>use</code> を使うことでモジュールの要素をスコープに取り込み、記述を簡潔にすることができます。ただし、<code>use</code> は可視性のルール自体を変更するものではない点には注意が必要です。</p>



<p class="wp-block-paragraph">まずは、この記事で紹介した <code>pub</code> による公開と基本的なモジュール分割の方法をしっかり理解することで、Rust のモジュール設計の基礎を覚えていただければと思います。</p>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--heading-box8  "><div class="a--simple-box-title d--bold">ソースコード</div><div class="c--simple-box-inner">
<p class="wp-block-paragraph">上記で紹介しているソースコードについては <a href="https://github.com/nkhn37/rust-tech-sample-source/tree/main/rust-basic/visibility" target="_blank" rel="noreferrer noopener">GitHub</a> にて公開しています。参考にしていただければと思います。</p>
</div></div></section>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://rust-tech.nkhn37.net/rust-programming-basics/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://rust-tech.nkhn37.net/wp-content/uploads/2025/08/77e7c51961993fb9cb96c02a2311436d-320x180.jpg" alt="Rust プログラミング入門" /></div><div class="a--blogcard-title d--bold">Rust プログラミング入門</div></a></section>


<p class="wp-block-paragraph"></p>
<div id="nkhn3-2694124794" class="nkhn3-multiplex nkhn3-entity-placement" style="margin-left: auto;margin-right: auto;text-align: center;"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9478001176347002"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="autorelaxed"
     data-ad-client="ca-pub-9478001176347002"
     data-ad-slot="8958649655"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>]]></content:encoded>
					
					<wfw:commentRss>https://rust-tech.nkhn37.net/rust-modules-visibility-basic/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: rust-tech.nkhn37.net @ 2026-08-20 00:41:04 by W3 Total Cache
-->