<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="Determines what type of session cookie should be used and how its lifecycle should be managed."><metaname="keywords"content="rust, rustlang, rust-lang, SessionLifecycle"><title>SessionLifecycle in actix_session::config - Rust</title><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceSerif4-Regular.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../FiraSans-Regular.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../FiraSans-Medium.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceCodePro-Regular.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceSerif4-Bold.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceCodePro-Semibold.ttf.woff2"><linkrel="stylesheet"href="../../normalize.css"><linkrel="stylesheet"href="../../rustdoc.css"id="mainThemeStyle"><linkrel="stylesheet"href="../../ayu.css"disabled><linkrel="stylesheet"href="../../dark.css"disabled><linkrel="stylesheet"href="../../light.css"id="themeStyle"><scriptid="default-settings"></script><scriptsrc="../../storage.js"></script><scriptdefersrc="sidebar-items.js"></script><scriptdefersrc="../../main.js"></script><noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="icon"href="https://actix.rs/favicon.ico"></head><bodyclass="rustdoc enum"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="mobile-topbar"><buttonclass="sidebar-menu-toggle">☰</button><aclass="sidebar-logo"href="../../actix_session/index.html"><divclass="logo-container"><imgsrc="https://actix.rs/img/logo.png"alt="logo"></div></a><h2class="location"></h2></nav><navclass="sidebar"><aclass="sidebar-logo"href="../../actix_session/index.html"><divclass="logo-container">
<imgsrc="https://actix.rs/img/logo.png"alt="logo"></a><navclass="sub"><formclass="search-form"><divclass="search-container"><span></span><inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"><divid="help-button"title="help"tabindex="-1"><buttontype="button">?</button></div><divid="settings-menu"tabindex="-1"><ahref="../../settings.html"title="settings"><imgwidth="22"height="22"alt="Change settings"src="../../wheel.svg"></a></div></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading"><h1class="fqn"><spanclass="in-band">Enum <ahref="../index.html">actix_session</a>::<wbr><ahref="index.html">config</a>::<wbr><aclass="enum"href="#">SessionLifecycle</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../src/actix_session/config.rs.html#13-29">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><divclass="docblock item-decl"><preclass="rust enum"><code>#[non_exhaustive]
}</code></pre></div><detailsclass="rustdoc-toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>Determines what type of session cookie should be used and how its lifecycle should be managed.</p>
<p>Used by <ahref="struct.SessionMiddlewareBuilder.html#method.session_lifecycle"title="SessionMiddlewareBuilder::session_lifecycle"><code>SessionMiddlewareBuilder::session_lifecycle</code></a>.</p>
</div></details><h2id="variants"class="variants small-section-header">Variants (Non-exhaustive)<ahref="#variants"class="anchor"></a></h2><detailsclass="rustdoc-toggle non-exhaustive"><summaryclass="hideme"><span>This enum is marked as non-exhaustive</span></summary><divclass="docblock">Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.</div></details><h3id="variant.BrowserSession"class="variant small-section-header"><ahref="#variant.BrowserSession"class="anchor field"></a><code>BrowserSession(<aclass="struct"href="struct.BrowserSession.html"title="struct actix_session::config::BrowserSession">BrowserSession</a>)</code></h3><divclass="docblock"><p>The session cookie will expire when the current browser session ends.</p>
<p>When does a browser session end? It depends on the browser! Chrome, for example, will often
continue running in the background when the browser is closed—session cookies are not
deleted and they will still be available when the browser is opened again.
Check the documentation of the browsers you are targeting for up-to-date information.</p>
</div><h3id="variant.PersistentSession"class="variant small-section-header"><ahref="#variant.PersistentSession"class="anchor field"></a><code>PersistentSession(<aclass="struct"href="struct.PersistentSession.html"title="struct actix_session::config::PersistentSession">PersistentSession</a>)</code></h3><divclass="docblock"><p>The session cookie will be a <ahref="https://www.whitehatsec.com/glossary/content/persistent-session-cookie">persistent cookie</a>.</p>
<p>Persistent cookies have a pre-determined lifetime, specified via the <code>Max-Age</code> or <code>Expires</code>
attribute. They do not disappear when the current browser session ends.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-Debug-for-SessionLifecycle"class="impl has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#11">source</a><ahref="#impl-Debug-for-SessionLifecycle"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html"title="trait core::fmt::Debug">Debug</a> for <aclass="enum"href="enum.SessionLifecycle.html"title="enum actix_session::config::SessionLifecycle">SessionLifecycle</a></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.fmt"class="method trait-impl has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#11">source</a><ahref="#method.fmt"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt"class="fnname">fmt</a>(&self, f: &mut <aclass="struct"href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html"title="struct core::fmt::Formatter">Formatter</a><'_>) -><aclass="type"href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html"title="type core::fmt::Result">Result</a></h4></section></summary><divclass='docblock'><p>Formats the value using the given formatter. <ahref="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-From%3CBrowserSession%3E-for-SessionLifecycle"class="impl has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#11">source</a><ahref="#impl-From%3CBrowserSession%3E-for-SessionLifecycle"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"title="trait core::convert::From">From</a><<aclass="struct"href="struct.BrowserSession.html"title="struct actix_session::config::BrowserSession">BrowserSession</a>> for <aclass="enum"href="enum.SessionLifecycle.html"title="enum actix_session::config::SessionLifecycle">SessionLifecycle</a></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.from-1"class="method trait-impl has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#11">source</a><ahref="#method.from-1"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from"class="fnname">from</a>(original: <aclass="struct"href="struct.BrowserSession.html"title="struct actix_session::config::BrowserSession">BrowserSession</a>) -><aclass="enum"href="enum.SessionLifecycle.html"title="enum actix_session::config::SessionLifecycle">SessionLifecycle</a></h4></section></summary><divclass='docblock'><p>Converts to this type from the input type.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"open><summary><sectionid="impl-From%3CPersistentSession%3E-for-SessionLifecycle"class="impl has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#11">source</a><ahref="#impl-From%3CPersistentSession%3E-for-SessionLifecycle"class="anchor"></a><h3class="code-header in-band">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"title="trait core::convert::From">From</a><<aclass="struct"href="struct.PersistentSession.html"title="struct actix_session::config::PersistentSession">PersistentSession</a>> for <aclass="enum"href="enum.SessionLifecycle.html"title="enum actix_session::config::SessionLifecycle">SessionLifecycle</a></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.from"class="method trait-impl has-srclink"><aclass="srclink rightside"href="../../src/actix_session/config.rs.html#11">source</a><ahref="#method.from"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from"class="fnname">from</a>(original: <aclass="struct"href="struct.PersistentSession.html"title="struct actix_session::config::PersistentSession">PersistentSession</a>) -><aclass="enum"href="enum.SessionLifecycle.html"title="enum actix_session::config::SessionLifecycle">SessionLifecycle</a></h4></section></summary><divclass='docblock'><p>Converts to this type from the input type.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-Instrument-for-SessionLifecycle"class="impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#276">source</a><ahref="#impl-Instrument-for-SessionLifecycle"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html"title="trait tracing::instrument::Instrument">Instrument</a> for T</h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.instrument"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#82">source</a><ahref="#method.instrument"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html#method.instrument"class="fnname">instrument</a>(self, span: <aclass="struct"href="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html"title="struct tracing::span::Span">Span</a>) -><aclass="struct"href="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.Instrumented.html"title="struct tracing::instrument::Instrumented">Instrumented</a><Self></h4></section></summary><divclass='docblock'><p>Instruments this type with the provided <ahref="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html"title="Span"><code>Span</code></a>, returning an
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.in_current_span"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#121">source</a><ahref="#method.in_current_span"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.Instrument.html#method.in_current_span"class="fnname">in_current_span</a>(self) -><aclass="struct"href="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.Instrumented.html"title="struct tracing::instrument::Instrumented">Instrumented</a><Self></h4></section></summary><divclass='docblock'><p>Instruments this type with the <ahref="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html#method.current">current</a><ahref="https://docs.rs/tracing/0.1.36/tracing/span/struct.Span.html"><code>Span</code></a>, returning an
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.to_owned"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#88">source</a><ahref="#method.to_owned"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned"class="fnname">to_owned</a>(&self) -> T</h4></section></summary><divclass='docblock'><p>Creates owned data from borrowed data, usually by cloning. <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.clone_into"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#92">source</a><ahref="#method.clone_into"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into"class="fnname">clone_into</a>(&self, target: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</h4></section></summary><divclass='docblock'><p>Uses borrowed data to replace owned data, usually by cloning. <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-TryFrom%3CU%3E-for-SessionLifecycle"class="impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#601">source</a><ahref="#impl-TryFrom%3CU%3E-for-SessionLifecycle"class="anchor"></a><h3class="code-header in-band">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U> for T<spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><T>,</span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Error-1"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Error-1"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"class="associatedtype">Error</a> = <aclass="enum"href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html"title="enum core::convert::Infallible">Infallible</a></h4></section></summary><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.try_from"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="const unstable">const: <ahref="https://github.com/rust-lang/rust/issues/88674"title="Tracking issue for const_convert">unstable</a></span> · <aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#607">source</a></span><ahref="#method.try_from"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from"class="fnname">try_from</a>(value: U) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><T, <T as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U>>::<aclass="associatedtype"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'><p>Performs the conversion.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-TryInto%3CU%3E-for-SessionLifecycle"class="impl has-srclink"><aclass="srclink rightside"href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#586">source</a><ahref="#impl-TryInto%3CU%3E-for-SessionLifecycle"class="anchor"></a><h3class="code-header in-band">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html"title="trait core::convert::TryInto">TryInto</a><U> for T<spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>,</span></h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle"open><summary><sectionid="associatedtype.Error"class="associatedtype trait-impl has-srclink"><ahref="#associatedtype.Error"class="anchor"></a><h4class="code-header">type <ahref="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error"class="associatedtype">Error</a> = <U as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.try_into"class="method trait-impl has-srclink"><spanclass="rightside"><spanclass="since"title="const unstable">const: <ahref="https://github.com/rust-lang/rust/issues/88674"title="Tracking issue for const_convert">unstable</a></span> · <aclass="srclink"href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#592">source</a></span><ahref="#method.try_into"class="anchor"></a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into"class="fnname">try_into</a>(self) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><U, <U as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'><p>Performs the conversion.</p>
</div></details></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-VZip%3CV%3E-for-SessionLifecycle"class="impl has-srclink"><ahref="#impl-VZip%3CV%3E-for-SessionLifecycle"class="anchor"></a><h3class="code-header in-band">impl<V, T> VZip<V> for T<spanclass="where fmt-newline">where<br> V: MultiLane<T>,</span></h3></section></summary><divclass="impl-items"><sectionid="method.vzip"class="method trait-impl has-srclink"><ahref="#method.vzip"class="anchor"></a><h4class="code-header">fn <aclass="fnname">vzip</a>(self) -> V</h4></section></div></details><detailsclass="rustdoc-toggle implementors-toggle"><summary><sectionid="impl-WithSubscriber-for-SessionLifecycle"class="impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#334">source</a><ahref="#impl-WithSubscriber-for-SessionLifecycle"class="anchor"></a><h3class="code-header in-band">impl<T><aclass="trait"href="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.WithSubscriber.html"title="trait tracing::instrument::WithSubscriber">WithSubscriber</a> for T</h3></section></summary><divclass="impl-items"><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.with_subscriber"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#169-171">source</a><ahref="#method.with_subscriber"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber"class="fnname">with_subscriber</a><S>(self, subscriber: S) -><aclass="struct"href="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.WithDispatch.html"title="struct tracing::instrument::WithDispatch">WithDispatch</a><Self><spanclass="where fmt-newline">where<br> S: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><<aclass="struct"href="https://docs.rs/tracing-core/0.1.22/tracing_core/dispatcher/struct.Dispatch.html"title="struct tracing_core::dispatcher::Dispatch">Dispatch</a>>,</span></h4></section></summary><divclass='docblock'><p>Attaches the provided <ahref="https://docs.rs/tracing-core/0.1.22/tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a
</div></details><detailsclass="rustdoc-toggle method-toggle"open><summary><sectionid="method.with_current_subscriber"class="method trait-impl has-srclink"><aclass="srclink rightside"href="https://docs.rs/tracing/0.1.36/src/tracing/instrument.rs.html#221">source</a><ahref="#method.with_current_subscriber"class="anchor"></a><h4class="code-header">fn <ahref="https://docs.rs/tracing/0.1.36/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber"class="fnname">with_current_subscriber</a>(self) -><aclass="struct"href="https://docs.rs/tracing/0.1.36/tracing/instrument/struct.WithDispatch.html"title="struct tracing::instrument::WithDispatch">WithDispatch</a><Self></h4></section></summary><divclass='docblock'><p>Attaches the current <ahref="https://docs.rs/tracing/0.1.36/tracing/dispatcher/index.html#setting-the-default-subscriber">default</a><ahref="https://docs.rs/tracing-core/0.1.22/tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a