Format Rust imports with rustfmt

This commit is contained in:
topjohnwu
2025-10-19 17:15:30 -07:00
committed by John Wu
parent 0dc8231585
commit 5bcb55b7fc
27 changed files with 109 additions and 122 deletions
+4 -1
View File
@@ -4,7 +4,10 @@ use crate::{
fd_path, fd_set_attr, fd_path, fd_set_attr,
}; };
use libc::{dirent, mode_t}; use libc::{dirent, mode_t};
use nix::{errno::Errno, fcntl::AtFlags, fcntl::OFlag, sys::stat::Mode, unistd::UnlinkatFlags}; use nix::errno::Errno;
use nix::fcntl::{AtFlags, OFlag};
use nix::sys::stat::Mode;
use nix::unistd::UnlinkatFlags;
use std::fs::File; use std::fs::File;
use std::ops::Deref; use std::ops::Deref;
use std::os::fd::{AsFd, AsRawFd, BorrowedFd, IntoRawFd, OwnedFd, RawFd}; use std::os::fd::{AsFd, AsRawFd, BorrowedFd, IntoRawFd, OwnedFd, RawFd};
+4 -7
View File
@@ -4,13 +4,10 @@ use crate::{
}; };
use bytemuck::{Pod, bytes_of, bytes_of_mut}; use bytemuck::{Pod, bytes_of, bytes_of_mut};
use libc::{c_uint, makedev, mode_t}; use libc::{c_uint, makedev, mode_t};
use nix::{ use nix::errno::Errno;
errno::Errno, use nix::fcntl::{AT_FDCWD, OFlag};
fcntl::{AT_FDCWD, OFlag}, use nix::sys::stat::{FchmodatFlags, Mode};
sys::stat::{FchmodatFlags, Mode}, use nix::unistd::{AccessFlags, Gid, Uid};
unistd::AccessFlags,
unistd::{Gid, Uid},
};
use num_traits::AsPrimitive; use num_traits::AsPrimitive;
use std::cmp::min; use std::cmp::min;
use std::ffi::CStr; use std::ffi::CStr;
+1 -3
View File
@@ -1,9 +1,7 @@
#![feature(vec_into_raw_parts)] #![feature(vec_into_raw_parts)]
#![allow(clippy::missing_safety_doc)] #![allow(clippy::missing_safety_doc)]
pub use const_format; pub use {const_format, libc, nix};
pub use libc;
pub use nix;
pub use cstr::{ pub use cstr::{
FsPathFollow, StrErr, Utf8CStr, Utf8CStrBuf, Utf8CStrBufArr, Utf8CStrBufRef, Utf8CString, FsPathFollow, StrErr, Utf8CStr, Utf8CStrBuf, Utf8CStrBufArr, Utf8CStrBufRef, Utf8CString,
+7 -10
View File
@@ -1,16 +1,13 @@
use crate::{Utf8CStr, Utf8CString, cstr, ffi}; use crate::{Utf8CStr, Utf8CString, cstr, ffi};
use argh::{EarlyExit, MissingRequirements}; use argh::{EarlyExit, MissingRequirements};
use libc::c_char; use libc::c_char;
use std::{ use std::fmt::Arguments;
fmt, use std::io::Write;
fmt::Arguments, use std::mem::ManuallyDrop;
io::Write, use std::process::exit;
mem::ManuallyDrop, use std::sync::Arc;
process::exit, use std::sync::atomic::{AtomicPtr, Ordering};
slice, str, use std::{fmt, slice, str};
sync::Arc,
sync::atomic::{AtomicPtr, Ordering},
};
pub fn errno() -> &'static mut i32 { pub fn errno() -> &'static mut i32 {
unsafe { &mut *libc::__errno() } unsafe { &mut *libc::__errno() }
+2 -1
View File
@@ -1,4 +1,5 @@
use pb_rs::{ConfigBuilder, types::FileDescriptor}; use pb_rs::ConfigBuilder;
use pb_rs::types::FileDescriptor;
use crate::codegen::gen_cxx_binding; use crate::codegen::gen_cxx_binding;
+3 -1
View File
@@ -6,9 +6,11 @@ use crate::patch::hexpatch;
use crate::payload::extract_boot_from_payload; use crate::payload::extract_boot_from_payload;
use crate::sign::{sha1_hash, sign_boot_image}; use crate::sign::{sha1_hash, sign_boot_image};
use argh::{CommandInfo, EarlyExit, FromArgs, SubCommand}; use argh::{CommandInfo, EarlyExit, FromArgs, SubCommand};
use base::libc::umask;
use base::nix::fcntl::OFlag;
use base::{ use base::{
CmdArgs, EarlyExitExt, LoggedResult, MappedFile, PositionalArgParser, ResultExt, Utf8CStr, CmdArgs, EarlyExitExt, LoggedResult, MappedFile, PositionalArgParser, ResultExt, Utf8CStr,
Utf8CString, WriteExt, cmdline_logging, cstr, libc::umask, log_err, nix::fcntl::OFlag, Utf8CString, WriteExt, cmdline_logging, cstr, log_err,
}; };
use std::ffi::c_char; use std::ffi::c_char;
use std::io::{Seek, SeekFrom, Write}; use std::io::{Seek, SeekFrom, Write};
+10 -4
View File
@@ -1,13 +1,19 @@
use crate::ffi::{FileFormat, check_fmt}; use crate::ffi::{FileFormat, check_fmt};
use base::nix::fcntl::OFlag;
use base::{ use base::{
Chunker, FileOrStd, LoggedResult, ReadExt, ResultExt, Utf8CStr, Utf8CString, WriteExt, log_err, Chunker, FileOrStd, LoggedResult, ReadExt, ResultExt, Utf8CStr, Utf8CString, WriteExt, log_err,
nix::fcntl::OFlag,
}; };
use bzip2::{Compression as BzCompression, read::BzDecoder, write::BzEncoder}; use bzip2::Compression as BzCompression;
use flate2::{Compression as GzCompression, read::MultiGzDecoder, write::GzEncoder}; use bzip2::read::BzDecoder;
use bzip2::write::BzEncoder;
use flate2::Compression as GzCompression;
use flate2::read::MultiGzDecoder;
use flate2::write::GzEncoder;
use lz4::block::CompressionMode;
use lz4::liblz4::BlockChecksum;
use lz4::{ use lz4::{
BlockMode, BlockSize, ContentChecksum, Decoder as LZ4FrameDecoder, Encoder as LZ4FrameEncoder, BlockMode, BlockSize, ContentChecksum, Decoder as LZ4FrameDecoder, Encoder as LZ4FrameEncoder,
EncoderBuilder as LZ4FrameEncoderBuilder, block::CompressionMode, liblz4::BlockChecksum, EncoderBuilder as LZ4FrameEncoderBuilder,
}; };
use lzma_rust2::{CheckType, LzmaOptions, LzmaReader, LzmaWriter, XzOptions, XzReader, XzWriter}; use lzma_rust2::{CheckType, LzmaOptions, LzmaReader, LzmaWriter, XzOptions, XzReader, XzWriter};
use std::cmp::min; use std::cmp::min;
+2 -1
View File
@@ -23,9 +23,10 @@ use base::libc::{
S_IWOTH, S_IWUSR, S_IXGRP, S_IXOTH, S_IXUSR, dev_t, gid_t, major, makedev, minor, mknod, S_IWOTH, S_IWUSR, S_IXGRP, S_IXOTH, S_IXUSR, dev_t, gid_t, major, makedev, minor, mknod,
mode_t, uid_t, mode_t, uid_t,
}; };
use base::nix::fcntl::OFlag;
use base::{ use base::{
BytesExt, EarlyExitExt, LoggedResult, MappedFile, OptionExt, ResultExt, Utf8CStr, Utf8CStrBuf, BytesExt, EarlyExitExt, LoggedResult, MappedFile, OptionExt, ResultExt, Utf8CStr, Utf8CStrBuf,
WriteExt, cstr, log_err, nix::fcntl::OFlag, WriteExt, cstr, log_err,
}; };
#[derive(FromArgs)] #[derive(FromArgs)]
+4 -5
View File
@@ -1,14 +1,13 @@
use std::cell::UnsafeCell; use std::cell::UnsafeCell;
use argh::FromArgs; use argh::FromArgs;
use fdt::{ use fdt::node::{FdtNode, NodeProperty};
Fdt, FdtError, use fdt::{Fdt, FdtError};
node::{FdtNode, NodeProperty},
};
use base::{LoggedResult, MappedFile, Utf8CStr}; use base::{LoggedResult, MappedFile, Utf8CStr};
use crate::{check_env, patch::patch_verity}; use crate::check_env;
use crate::patch::patch_verity;
#[derive(FromArgs)] #[derive(FromArgs)]
#[argh(subcommand)] #[argh(subcommand)]
+5 -7
View File
@@ -1,15 +1,13 @@
use crate::compress::get_decoder; use crate::compress::get_decoder;
use crate::ffi::check_fmt; use crate::ffi::check_fmt;
use crate::proto::update_metadata::{DeltaArchiveManifest, mod_InstallOperation::Type}; use crate::proto::update_metadata::DeltaArchiveManifest;
use crate::proto::update_metadata::mod_InstallOperation::Type;
use base::{LoggedError, LoggedResult, ReadSeekExt, ResultExt, WriteExt, error}; use base::{LoggedError, LoggedResult, ReadSeekExt, ResultExt, WriteExt, error};
use byteorder::{BigEndian, ReadBytesExt}; use byteorder::{BigEndian, ReadBytesExt};
use quick_protobuf::{BytesReader, MessageRead}; use quick_protobuf::{BytesReader, MessageRead};
use std::io::Cursor; use std::fs::File;
use std::{ use std::io::{BufReader, Cursor, Read, Seek, SeekFrom, Write};
fs::File, use std::os::fd::FromRawFd;
io::{BufReader, Read, Seek, SeekFrom, Write},
os::fd::FromRawFd,
};
macro_rules! bad_payload { macro_rules! bad_payload {
($msg:literal) => {{ ($msg:literal) => {{
+2 -1
View File
@@ -1,4 +1,5 @@
use pb_rs::{ConfigBuilder, types::FileDescriptor}; use pb_rs::ConfigBuilder;
use pb_rs::types::FileDescriptor;
use crate::codegen::gen_cxx_binding; use crate::codegen::gen_cxx_binding;
+4 -6
View File
@@ -21,12 +21,10 @@ use base::{
AtomicArc, BufReadExt, FileAttr, FsPathBuilder, LoggedResult, ReadExt, ResultExt, Utf8CStr, AtomicArc, BufReadExt, FileAttr, FsPathBuilder, LoggedResult, ReadExt, ResultExt, Utf8CStr,
Utf8CStrBuf, WriteExt, cstr, fork_dont_care, info, libc, log_err, set_nice_name, Utf8CStrBuf, WriteExt, cstr, fork_dont_care, info, libc, log_err, set_nice_name,
}; };
use nix::{ use nix::fcntl::OFlag;
fcntl::OFlag, use nix::mount::MsFlags;
mount::MsFlags, use nix::sys::signal::SigSet;
sys::signal::SigSet, use nix::unistd::{dup2_stderr, dup2_stdin, dup2_stdout, getpid, getuid, setsid};
unistd::{dup2_stderr, dup2_stdin, dup2_stdout, getpid, getuid, setsid},
};
use num_traits::AsPrimitive; use num_traits::AsPrimitive;
use std::fmt::Write as _; use std::fmt::Write as _;
use std::io::{BufReader, Write}; use std::io::{BufReader, Write};
+5 -6
View File
@@ -1,17 +1,16 @@
use crate::consts::{LOG_PIPE, LOGFILE}; use crate::consts::{LOG_PIPE, LOGFILE};
use crate::ffi::get_magisk_tmp; use crate::ffi::get_magisk_tmp;
use crate::logging::LogFile::{Actual, Buffer}; use crate::logging::LogFile::{Actual, Buffer};
use base::const_format::concatcp;
use base::{ use base::{
FsPathBuilder, LogLevel, LoggedResult, ReadExt, ResultExt, Utf8CStr, Utf8CStrBuf, WriteExt, FsPathBuilder, LogLevel, LoggedResult, ReadExt, ResultExt, Utf8CStr, Utf8CStrBuf, WriteExt,
const_format::concatcp, cstr, libc, new_daemon_thread, raw_cstr, update_logger, cstr, libc, new_daemon_thread, raw_cstr, update_logger,
}; };
use bytemuck::{Pod, Zeroable, bytes_of, write_zeroes}; use bytemuck::{Pod, Zeroable, bytes_of, write_zeroes};
use libc::{PIPE_BUF, c_char, localtime_r, sigtimedwait, time_t, timespec, tm}; use libc::{PIPE_BUF, c_char, localtime_r, sigtimedwait, time_t, timespec, tm};
use nix::{ use nix::fcntl::OFlag;
fcntl::OFlag, use nix::sys::signal::{SigSet, SigmaskHow, Signal};
sys::signal::{SigSet, SigmaskHow, Signal}, use nix::unistd::{Gid, Uid, chown, getpid, gettid};
unistd::{Gid, Uid, chown, getpid, gettid},
};
use num_derive::{FromPrimitive, ToPrimitive}; use num_derive::{FromPrimitive, ToPrimitive};
use num_traits::FromPrimitive; use num_traits::FromPrimitive;
use std::cmp::min; use std::cmp::min;
+3 -1
View File
@@ -8,7 +8,9 @@ use base::{
Utf8CStrBuf, Utf8CString, WalkResult, clone_attr, cstr, debug, error, info, libc, raw_cstr, Utf8CStrBuf, Utf8CString, WalkResult, clone_attr, cstr, debug, error, info, libc, raw_cstr,
warn, warn,
}; };
use nix::{fcntl::OFlag, mount::MsFlags, unistd::UnlinkatFlags}; use nix::fcntl::OFlag;
use nix::mount::MsFlags;
use nix::unistd::UnlinkatFlags;
use std::collections::BTreeMap; use std::collections::BTreeMap;
use std::os::fd::IntoRawFd; use std::os::fd::IntoRawFd;
use std::path::{Component, Path}; use std::path::{Component, Path};
+4 -5
View File
@@ -6,12 +6,11 @@ use base::{
debug, info, libc, parse_mount_info, warn, debug, info, libc, parse_mount_info, warn,
}; };
use libc::{c_uint, dev_t}; use libc::{c_uint, dev_t};
use nix::{ use nix::mount::MsFlags;
mount::MsFlags, use nix::sys::stat::{Mode, SFlag, mknod};
sys::stat::{Mode, SFlag, mknod},
};
use num_traits::AsPrimitive; use num_traits::AsPrimitive;
use std::{cmp::Ordering::Greater, cmp::Ordering::Less, path::Path, path::PathBuf}; use std::cmp::Ordering::{Greater, Less};
use std::path::{Path, PathBuf};
pub fn setup_preinit_dir() { pub fn setup_preinit_dir() {
let magisk_tmp = get_magisk_tmp(); let magisk_tmp = get_magisk_tmp();
+3 -3
View File
@@ -1,7 +1,7 @@
use super::{ use super::persist::{
PropInfo, PropReader, SYS_PROP, persist_delete_prop, persist_get_all_props, persist_get_prop, persist_set_prop,
persist::{persist_delete_prop, persist_get_all_props, persist_get_prop, persist_set_prop},
}; };
use super::{PropInfo, PropReader, SYS_PROP};
use argh::{EarlyExit, FromArgs, MissingRequirements}; use argh::{EarlyExit, FromArgs, MissingRequirements};
use base::libc::PROP_VALUE_MAX; use base::libc::PROP_VALUE_MAX;
use base::{ use base::{
+7 -10
View File
@@ -1,20 +1,17 @@
use nix::fcntl::OFlag; use nix::fcntl::OFlag;
use quick_protobuf::{BytesReader, MessageRead, MessageWrite, Writer}; use quick_protobuf::{BytesReader, MessageRead, MessageWrite, Writer};
use std::io::Read; use std::fs::File;
use std::{ use std::io::{BufWriter, Read, Write};
fs::File, use std::os::fd::FromRawFd;
io::{BufWriter, Write},
os::fd::FromRawFd,
};
use crate::resetprop::PropReader; use crate::resetprop::PropReader;
use crate::resetprop::proto::persistent_properties::{ use crate::resetprop::proto::persistent_properties::PersistentProperties;
PersistentProperties, mod_PersistentProperties::PersistentPropertyRecord, use crate::resetprop::proto::persistent_properties::mod_PersistentProperties::PersistentPropertyRecord;
};
use base::const_format::concatcp; use base::const_format::concatcp;
use base::libc::mkstemp;
use base::{ use base::{
Directory, FsPathBuilder, LibcReturn, LoggedResult, MappedFile, SilentLogExt, Utf8CStr, Directory, FsPathBuilder, LibcReturn, LoggedResult, MappedFile, SilentLogExt, Utf8CStr,
Utf8CStrBuf, WalkResult, clone_attr, cstr, debug, libc::mkstemp, log_err, Utf8CStrBuf, WalkResult, clone_attr, cstr, debug, log_err,
}; };
const PERSIST_PROP_DIR: &str = "/data/property"; const PERSIST_PROP_DIR: &str = "/data/property";
+5 -5
View File
@@ -8,14 +8,14 @@ use ExtraVal::{Bool, Int, IntList, Str};
use base::{ use base::{
BytesExt, FileAttr, LibcReturn, LoggedResult, ResultExt, Utf8CStrBuf, cstr, fork_dont_care, BytesExt, FileAttr, LibcReturn, LoggedResult, ResultExt, Utf8CStrBuf, cstr, fork_dont_care,
}; };
use nix::{ use nix::fcntl::OFlag;
fcntl::OFlag, use nix::poll::{PollFd, PollFlags, PollTimeout};
poll::{PollFd, PollFlags, PollTimeout},
};
use num_traits::AsPrimitive; use num_traits::AsPrimitive;
use std::fmt::Write;
use std::fs::File;
use std::os::fd::AsFd; use std::os::fd::AsFd;
use std::os::unix::net::UCred; use std::os::unix::net::UCred;
use std::{fmt::Write, fs::File, process::Command, process::exit}; use std::process::{Command, exit};
struct Extra<'a> { struct Extra<'a> {
key: &'static str, key: &'static str,
+6 -8
View File
@@ -1,13 +1,11 @@
use base::{FileOrStd, LibcReturn, LoggedResult, OsResult, ResultExt, libc, warn}; use base::{FileOrStd, LibcReturn, LoggedResult, OsResult, ResultExt, libc, warn};
use libc::{STDIN_FILENO, TIOCGWINSZ, TIOCSWINSZ, c_int, winsize}; use libc::{STDIN_FILENO, TIOCGWINSZ, TIOCSWINSZ, c_int, winsize};
use nix::{ use nix::fcntl::{OFlag, SpliceFFlags};
fcntl::{OFlag, SpliceFFlags}, use nix::poll::{PollFd, PollFlags, PollTimeout, poll};
poll::{PollFd, PollFlags, PollTimeout, poll}, use nix::sys::signal::{SigSet, Signal, raise};
sys::signal::{SigSet, Signal, raise}, use nix::sys::signalfd::{SfdFlags, SignalFd};
sys::signalfd::{SfdFlags, SignalFd}, use nix::sys::termios::{SetArg, Termios, cfmakeraw, tcgetattr, tcsetattr};
sys::termios::{SetArg, Termios, cfmakeraw, tcgetattr, tcsetattr}, use nix::unistd::pipe2;
unistd::pipe2,
};
use std::fs::File; use std::fs::File;
use std::io::{Read, Write}; use std::io::{Read, Write};
use std::mem::MaybeUninit; use std::mem::MaybeUninit;
+2 -1
View File
@@ -1,5 +1,6 @@
use base::{ResultExt, new_daemon_thread}; use base::{ResultExt, new_daemon_thread};
use nix::{sys::signal::SigSet, unistd::getpid, unistd::gettid}; use nix::sys::signal::SigSet;
use nix::unistd::{getpid, gettid};
use std::sync::{Condvar, LazyLock, Mutex, WaitTimeoutResult}; use std::sync::{Condvar, LazyLock, Mutex, WaitTimeoutResult};
use std::time::Duration; use std::time::Duration;
+6 -14
View File
@@ -1,19 +1,11 @@
use crate::ffi::backup_init; use crate::ffi::{BootConfig, MagiskInit, backup_init, magisk_proxy_main};
use crate::logging::setup_klog;
use crate::mount::is_rootfs; use crate::mount::is_rootfs;
use crate::twostage::hexpatch_init_for_second_stage; use crate::twostage::hexpatch_init_for_second_stage;
use crate::{ use base::libc::{basename, getpid, mount, umask};
ffi::{BootConfig, MagiskInit, magisk_proxy_main}, use base::{LibcReturn, LoggedResult, ResultExt, cstr, info, raw_cstr};
logging::setup_klog, use std::ffi::{CStr, c_char};
}; use std::ptr::null;
use base::{
LibcReturn, LoggedResult, ResultExt, cstr, info,
libc::{basename, getpid, mount, umask},
raw_cstr,
};
use std::{
ffi::{CStr, c_char},
ptr::null,
};
impl MagiskInit { impl MagiskInit {
fn new(argv: *mut *mut c_char) -> Self { fn new(argv: *mut *mut c_char) -> Self {
+6 -10
View File
@@ -4,17 +4,13 @@ use base::{
nix, parse_mount_info, raw_cstr, nix, parse_mount_info, raw_cstr,
}; };
use cxx::CxxString; use cxx::CxxString;
use nix::{ use nix::mount::MsFlags;
mount::MsFlags, use nix::sys::statfs::{FsType, TMPFS_MAGIC, statfs};
sys::statfs::{FsType, TMPFS_MAGIC, statfs}, use nix::unistd::{chdir, chroot};
unistd::{chdir, chroot},
};
use num_traits::AsPrimitive; use num_traits::AsPrimitive;
use std::{ use std::collections::BTreeSet;
collections::BTreeSet, use std::ops::Bound::{Excluded, Unbounded};
ops::Bound::{Excluded, Unbounded}, use std::pin::Pin;
pin::Pin,
};
unsafe extern "C" { unsafe extern "C" {
static environ: *const *mut libc::c_char; static environ: *const *mut libc::c_char;
+4 -7
View File
@@ -5,13 +5,10 @@ use base::{
BufReadExt, Directory, FsPathBuilder, LoggedResult, ResultExt, Utf8CStr, Utf8CString, BufReadExt, Directory, FsPathBuilder, LoggedResult, ResultExt, Utf8CStr, Utf8CString,
clone_attr, cstr, debug, clone_attr, cstr, debug,
}; };
use std::io::BufReader; use std::fs::File;
use std::{ use std::io::{BufReader, Write};
fs::File, use std::mem;
io::Write, use std::os::fd::{FromRawFd, RawFd};
mem,
os::fd::{FromRawFd, RawFd},
};
pub fn inject_magisk_rc(fd: RawFd, tmp_dir: &Utf8CStr) { pub fn inject_magisk_rc(fd: RawFd, tmp_dir: &Utf8CStr) {
debug!("Injecting magisk rc"); debug!("Injecting magisk rc");
+2
View File
@@ -0,0 +1,2 @@
unstable_features = true
imports_granularity = "Module"
+2 -2
View File
@@ -1,9 +1,9 @@
use crate::ffi::SePolicy; use crate::ffi::SePolicy;
use crate::statement::format_statement_help; use crate::statement::format_statement_help;
use argh::FromArgs; use argh::FromArgs;
use base::libc::umask;
use base::{ use base::{
CmdArgs, EarlyExitExt, FmtAdaptor, LoggedResult, Utf8CString, cmdline_logging, cstr, CmdArgs, EarlyExitExt, FmtAdaptor, LoggedResult, Utf8CString, cmdline_logging, cstr, log_err,
libc::umask, log_err,
}; };
use std::ffi::c_char; use std::ffi::c_char;
use std::io::stderr; use std::io::stderr;
+2 -1
View File
@@ -1,5 +1,6 @@
use crate::SePolicy;
use crate::consts::{SEPOL_FILE_TYPE, SEPOL_LOG_TYPE, SEPOL_PROC_DOMAIN}; use crate::consts::{SEPOL_FILE_TYPE, SEPOL_LOG_TYPE, SEPOL_PROC_DOMAIN};
use crate::{SePolicy, ffi::Xperm}; use crate::ffi::Xperm;
use base::{LogLevel, set_log_level_state}; use base::{LogLevel, set_log_level_state};
macro_rules! rules { macro_rules! rules {
+4 -2
View File
@@ -1,10 +1,12 @@
use std::fmt::{Display, Formatter, Write}; use std::fmt::{Display, Formatter, Write};
use std::io::{BufRead, BufReader, Cursor}; use std::io::{BufRead, BufReader, Cursor};
use std::{iter::Peekable, vec::IntoIter}; use std::iter::Peekable;
use std::vec::IntoIter;
use crate::SePolicy; use crate::SePolicy;
use crate::ffi::Xperm; use crate::ffi::Xperm;
use base::{BufReadExt, LoggedResult, Utf8CStr, error, nix::fcntl::OFlag, warn}; use base::nix::fcntl::OFlag;
use base::{BufReadExt, LoggedResult, Utf8CStr, error, warn};
pub enum Token<'a> { pub enum Token<'a> {
AL, AL,