[−][src]Struct uclicious::raw::parser::Parser
Raw parser object.
Methods
impl Parser
[src]
pub fn with_flags(flags: ParserFlags) -> Self
[src]
Create a new parser with given option flags.
pub fn add_chunk_full<C: AsRef<str>>(
&mut self,
chunk: C,
priority: Priority,
strategy: DuplicateStrategy
) -> Result<(), UclError>
[src]
&mut self,
chunk: C,
priority: Priority,
strategy: DuplicateStrategy
) -> Result<(), UclError>
Add a chunk of text to the parser. String must:
- not have
\0
character; - must be valid UCL object;
pub fn add_file_full<F: AsRef<Path>>(
&mut self,
file: F,
priority: Priority,
strategy: DuplicateStrategy
) -> Result<(), UclError>
[src]
&mut self,
file: F,
priority: Priority,
strategy: DuplicateStrategy
) -> Result<(), UclError>
Add a file by a file path to the parser. This function uses mmap call to load file, therefore, it should not be shrunk during parsing.
pub fn add_fd_full<F: AsRawFd>(
&mut self,
fd: F,
priority: Priority,
strategy: DuplicateStrategy
) -> Result<(), UclError>
[src]
&mut self,
fd: F,
priority: Priority,
strategy: DuplicateStrategy
) -> Result<(), UclError>
pub fn set_filevars<F: AsRef<Path>>(
&mut self,
filename: F,
need_expand: bool
) -> Result<(), UclError>
[src]
&mut self,
filename: F,
need_expand: bool
) -> Result<(), UclError>
Add the standard file variables to the parser
based on the filename
specified:
$FILENAME
- a filename of ucl input$CURDIR
- a current directory of the input
For example, if a filename param is ../something.conf
then the variables will have the following values:
$FILENAME
-../something.conf
$CURDIR
-..
if need_expand parameter is true then all relative paths are expanded using realpath call. In this example if .. is /etc/dir then variables will have these values:
$FILENAME
-/etc/something.conf
$CURDIR
-/etc
pub fn get_object(&mut self) -> Result<Object, UclError>
[src]
Get a top object for a parser.
pub fn register_variable<K: AsRef<str>, V: AsRef<str>>(
&mut self,
var: K,
value: V
) -> &mut Self
[src]
&mut self,
var: K,
value: V
) -> &mut Self
Register new variable $var
that should be replaced by the parser to the value
string.
Variables need to be registered before they are referenced.
Panics
This function panics if either var
or value
has \0
.
pub unsafe fn set_variables_handler_raw(
&mut self,
handler: ucl_variable_handler,
ud: *mut c_void
) -> &mut Self
[src]
&mut self,
handler: ucl_variable_handler,
ud: *mut c_void
) -> &mut Self
Register function as an unknown variable handler. Parser can only have one handler.
- handler - a function pointer
- ud - an opaque pointer that will be passed to a handler
Safety
Both object behind ud
and function behind handler
need to live at least as long as the parser.
pub fn set_variables_handler(
&mut self,
handler: Box<dyn VariableHandler>
) -> &mut Self
[src]
&mut self,
handler: Box<dyn VariableHandler>
) -> &mut Self
A safe counterpart of Parser::set_variable_handler_raw
. Unlike unsafe version this one takes ownership of a handler and ensures it stays alive as long as parser does.
Caveats
Parser can have only bar handler. In order to have multiple, please use CompoundHandler
to join multiple handlers into one.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Parser
impl !Send for Parser
impl !Sync for Parser
impl Unpin for Parser
impl !UnwindSafe for Parser
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: FromObject<T>,
[src]
U: FromObject<T>,
fn try_into(Self) -> Result<U, ObjectError>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,