pub struct Args {
pub format: Format,
pub output: Option<PathBuf>,
pub mem_name: Option<String>,
pub self_contained: bool,
pub base_url: Option<String>,
}Expand description
Export the write mem as markdown (in place), as a portable .mem
archive, or as a structured JSON document on stdout.
--format markdown is supported only on folder-backed mems; use
--format mem for archive export on git-branch backends. Targeting
a mem on an incompatible backend returns
MARKDOWN_EXPORT_UNSUPPORTED_BACKEND; workspace-wide markdown export
in a mixed-backend workspace completes the folder mounts and lists
the declined mounts under skipped_mounts.
--format json is the bulk read: one engine boot emits the complete
entity set — per entity the same structured envelope memstead entity --json produces — grouped per mem, backend-uniform, observably
read-only. External projections and check scripts consume this
instead of per-entity CLI calls (which pay the engine boot per
entity) or raw git against the mem-repo.
Fields§
§format: FormatOutput format. markdown regenerates the mem directory in place
(folder-backed mems only); mem writes a portable .mem zip
suitable for sharing (every backend); json prints every
non-stub entity of the selected mem(s) as one structured JSON
document on stdout (every backend, read-only); html writes one
self-contained page; llms-txt prints the whole mem as one
agent-readable Markdown document (every backend, read-only) —
the same shape a Memstead deployment serves at /llms-full.txt,
rendered by the same engine code so the two cannot drift.
output: Option<PathBuf>Output path for --format mem (default ./<name>-<version>.mem)
and --format html (default ./<mem>.html). Optional for
--format llms-txt, which prints to stdout when omitted.
Ignored for --format markdown; refused for --format json
(that document goes to stdout).
mem_name: Option<String>Which mem to export (by name). For --format markdown, omitting
this argument runs a workspace-wide export and reports any
declined mounts under skipped_mounts. For --format mem,
required when more than one write mem is loaded; defaults to
the first writable mem otherwise. For --format json, omitting
it exports every writable mem; naming a read-only mount exports
that mount (read-mems are excluded from the workspace-wide
default — they are someone else’s published content).
self_contained: boolFor --format mem: make the archive self-contained by dropping
every ## Relationships row whose target lives in another mem,
then re-pack and strictly validate it (the same pass install
runs). Without it, a mem that references its sibling mems exports
with DANGLING_CROSS_MEM_EDGE_IN_EXPORT warnings and install
refuses the archive; with it, every dropped edge is reported as
CROSS_MEM_EDGE_DROPPED instead. Section text, body wiki-links
included, is never touched: an alias row synthesised from a body
link loses nothing the body does not still say.
base_url: Option<String>Absolute base URL for entity links in --format llms-txt (e.g.
https://example.com). With it, references render as absolute
links exactly as the served document does; without it they target
the document-relative entity/<id>. There is no third form.
Ignored by every other format.
Trait Implementations§
Source§impl Args for Args
impl Args for Args
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl CommandFactory for Args
impl CommandFactory for Args
Source§impl FromArgMatches for Args
impl FromArgMatches for Args
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl Parser for Args
impl Parser for Args
Source§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
Source§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
Source§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
Auto Trait Implementations§
impl Freeze for Args
impl RefUnwindSafe for Args
impl Send for Args
impl Sync for Args
impl Unpin for Args
impl UnsafeUnpin for Args
impl UnwindSafe for Args
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> Fruit for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more