Struct erg_common::io::Input

source ·
pub struct Input { /* private fields */ }
Expand description

Since input is not always only from files Unify operations with Input

Implementations§

source§

impl Input

source

pub const fn new(kind: InputKind, id: u64) -> Self

source

pub fn file(path: PathBuf) -> Self

source

pub fn pipe(src: String) -> Self

source

pub fn str(src: String) -> Self

source

pub fn repl() -> Self

source

pub fn dummy() -> Self

source

pub fn dummy_repl(stdin: DummyStdin) -> Self

source

pub const fn is_repl(&self) -> bool

source

pub const fn id(&self) -> u64

source

pub fn dir(&self) -> PathBuf

source

pub fn project_root(&self) -> Option<PathBuf>

source

pub fn enclosed_name(&self) -> &str

source

pub fn lineno(&self) -> usize

source

pub fn block_begin(&self) -> usize

source

pub fn set_block_begin(&self)

source

pub fn insert_whitespace(&self, whitespace: &str)

source

pub fn set_indent(&self, indent: usize)

source

pub fn file_stem(&self) -> String

source

pub fn full_path(&self) -> PathBuf

source

pub fn filename(&self) -> String

source

pub fn path(&self) -> &Path

This is not normalized, so use NormalizedPathBuf::new to compare

source

pub fn module_name(&self) -> String

source

pub fn read(&mut self) -> String

source

pub fn source_exists(&self) -> bool

source

pub fn try_read(&mut self) -> Result<String>

source

pub fn read_non_dummy(&self) -> String

source

pub fn reread_lines(&self, ln_begin: usize, ln_end: usize) -> Vec<String>

source

pub fn reread(&self) -> String

source

pub fn sys_path(&self) -> Result<Vec<PathBuf>, Error>

source

pub fn resolve_py(&self, path: &Path) -> Result<PathBuf, Error>

source

pub fn resolve_path(&self, path: &Path, cfg: &ErgConfig) -> Option<PathBuf>

source

pub fn resolve_real_path(&self, path: &Path, cfg: &ErgConfig) -> Option<PathBuf>

resolution order:

  1. ./{path/to}.er
  2. ./{path/to}/__init__.er
  3. std/{path/to}.er
  4. std/{path/to}/__init__.er
  5. pkgs/{path/to}/src/lib.er
source

pub fn resolve_decl_path(&self, path: &Path, cfg: &ErgConfig) -> Option<PathBuf>

resolution order:

  1. {path/to}.d.er
  2. {path/to}/__init__.d.er
  3. {path}/__pycache__/{to}.d.er
  4. {path/to}/__pycache__/__init__.d.er
  5. {path.d/to.d}/__init__.d.er
  6. {path.d/to.d}/__pycache__/__init__.d.er (and repeat for the project root)
  7. std/{path/to}.d.er
  8. std/{path/to}/__init__.d.er
  9. pkgs/{path/to}/src/lib.d.er
  10. site-packages/{path}/__pycache__/{to}.d.er
  11. site-packages/{path/to}/__pycache__/__init__.d.er
source

pub fn try_push_path(path: PathBuf, add: &Path) -> Result<PathBuf, String>

source

pub fn decl_file_is(&self, decl_path: &Path) -> bool

source

pub fn mode(&self) -> &'static str

Trait Implementations§

source§

impl Clone for Input

source§

fn clone(&self) -> Input

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Input

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<&Path> for Input

source§

fn from(path: &Path) -> Self

Converts to this type from the input type.
source§

impl From<PathBuf> for Input

source§

fn from(path: PathBuf) -> Self

Converts to this type from the input type.
source§

impl Hash for Input

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Input

source§

fn eq(&self, other: &Input) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Input

source§

impl StructuralPartialEq for Input

Auto Trait Implementations§

§

impl Freeze for Input

§

impl RefUnwindSafe for Input

§

impl Send for Input

§

impl Sync for Input

§

impl Unpin for Input

§

impl UnwindSafe for Input

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.