mirror of
https://github.com/clap-rs/clap
synced 2024-12-14 14:52:33 +00:00
commit
b73c7e8518
3 changed files with 29 additions and 6 deletions
|
@ -1,7 +1,7 @@
|
|||
// Std
|
||||
use std::ffi::{OsStr, OsString};
|
||||
use std::io::{self, BufWriter, Write};
|
||||
#[cfg(feature = "debug")]
|
||||
#[cfg(all(feature = "debug", not(target_arch = "wasm32")))]
|
||||
use std::os::unix::ffi::OsStrExt;
|
||||
use std::slice::Iter;
|
||||
use std::iter::Peekable;
|
||||
|
|
|
@ -4,9 +4,9 @@ use std::rc::Rc;
|
|||
use std::borrow::Cow;
|
||||
use std::fmt::{self, Display, Formatter};
|
||||
use std::ffi::{OsStr, OsString};
|
||||
#[cfg(target_os = "windows")]
|
||||
#[cfg(any(target_os = "windows", target_arch = "wasm32"))]
|
||||
use osstringext::OsStrExt3;
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
#[cfg(not(any(target_os = "windows", target_arch = "wasm32")))]
|
||||
use std::os::unix::ffi::OsStrExt;
|
||||
use std::env;
|
||||
use std::cmp::{Ord, Ordering};
|
||||
|
@ -3745,6 +3745,29 @@ impl<'a, 'b> Arg<'a, 'b> {
|
|||
self.unset_setting(ArgSettings::MultipleOccurrences)
|
||||
}
|
||||
}
|
||||
|
||||
/// Indicates that all parameters passed after this should not be parsed
|
||||
/// individually, but rather passed in their entirety. It is worth noting
|
||||
/// that setting this requires all values to come after a `--` to indicate they
|
||||
/// should all be captured. For example:
|
||||
///
|
||||
/// ```notrust
|
||||
/// --foo something -- -v -v -v -b -b -b --baz -q -u -x
|
||||
/// ```
|
||||
/// Will result in everything after `--` to be considered one raw argument. This behavior
|
||||
/// may not be exactly what you are expecting and using [`AppSettings::TrailingVarArg`]
|
||||
/// may be more appropriate.
|
||||
///
|
||||
/// **NOTE:** Implicitly sets [`Arg::multiple(true)`], [`Arg::allow_hyphen_values(true)`], and
|
||||
/// [`Arg::last(true)`] when set to `true`
|
||||
///
|
||||
/// [`Arg::multiple(true)`]: ./struct.Arg.html#method.multiple
|
||||
/// [`Arg::allow_hyphen_values(true)`]: ./struct.Arg.html#method.allow_hyphen_values
|
||||
/// [`Arg::last(true)`]: ./struct.Arg.html#method.last
|
||||
/// [`AppSettings::TrailingVarArg`]: ./enum.AppSettings.html#variant.TrailingVarArg
|
||||
pub fn raw(self, raw: bool) -> Self {
|
||||
self.multiple(raw).allow_hyphen_values(raw).last(raw)
|
||||
}
|
||||
|
||||
// @TODO @docs @v3-beta: write better docs as ArgSettings is now critical
|
||||
/// Checks if one of the [`ArgSettings`] is set for the argument
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#[cfg(target_os = "windows")]
|
||||
#[cfg(any(target_os = "windows", target_arch = "wasm32"))]
|
||||
use INVALID_UTF8;
|
||||
use std::ffi::OsStr;
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
#[cfg(not(any(target_os = "windows", target_arch = "wasm32")))]
|
||||
use std::os::unix::ffi::OsStrExt;
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
#[cfg(any(target_os = "windows", target_arch = "wasm32"))]
|
||||
pub trait OsStrExt3 {
|
||||
fn from_bytes(b: &[u8]) -> &Self;
|
||||
fn as_bytes(&self) -> &[u8];
|
||||
|
|
Loading…
Reference in a new issue