eo-phi-normalizer-3.0.0: data/0.49.3/org/eolang/io/console.phi
{⟦
org ↦ ⟦
eolang ↦ ⟦
io ↦ ⟦
console ↦ ⟦
φ ↦ Φ̇.sys.os.is-windows.if(ξ.windows-console, ξ.posix-console).platform,
posix-console ↦ ⟦
platform ↦ ξ,
read(size) ↦ ⟦
φ ↦ ξ.input-block(Φ̇.bytes(⟦ Δ ⤍ -- ⟧)).read(ξ.size).self,
input-block(buffer) ↦ ⟦
self ↦ ξ,
φ ↦ ξ.buffer,
read(size) ↦ ⟦
read-bytes ↦ Φ̇.dataized(
Φ̇.sys.posix(
"read",
Φ̇.tuple(
Φ̇.tuple(Φ̇.tuple.empty, Φ̇.sys.posix.stdin-fileno), ξ.size
)
).output
).as-bytes,
φ ↦ Φ̇.seq(
Φ̇.tuple(
Φ̇.tuple(Φ̇.tuple.empty, ξ.read-bytes), ξ.ρ.ρ.input-block(ξ.read-bytes)
)
).self
⟧
⟧
⟧,
write(buffer) ↦ ⟦
φ ↦ ξ.output-block.write(ξ.buffer).self,
output-block ↦ ⟦
self ↦ ξ,
φ ↦ Φ̇.true,
write(buffer) ↦ ⟦
φ ↦ Φ̇.seq(
Φ̇.tuple(
Φ̇.tuple(
Φ̇.tuple.empty,
Φ̇.sys.posix(
"write",
Φ̇.tuple(
Φ̇.tuple(
Φ̇.tuple(
Φ̇.tuple.empty, Φ̇.sys.posix.stdout-fileno
),
ξ.buffer
),
ξ.buffer.size
)
).code
),
ξ.ρ.ρ.output-block
)
).self
⟧
⟧
⟧
⟧,
windows-console ↦ ⟦
platform ↦ ξ,
read(size) ↦ ⟦
φ ↦ ξ.input-block(Φ̇.bytes(⟦ Δ ⤍ -- ⟧)).read(ξ.size).self,
input-block(buffer) ↦ ⟦
self ↦ ξ,
φ ↦ ξ.buffer,
read(size) ↦ ⟦
read-bytes ↦ Φ̇.dataized(
Φ̇.sys.win32(
"ReadFile",
Φ̇.tuple(
Φ̇.tuple(Φ̇.tuple.empty, Φ̇.sys.win32.std-input-handle), ξ.size
)
).output
).as-bytes,
φ ↦ Φ̇.seq(
Φ̇.tuple(
Φ̇.tuple(Φ̇.tuple.empty, ξ.read-bytes), ξ.ρ.ρ.input-block(ξ.read-bytes)
)
).self
⟧
⟧
⟧,
write(buffer) ↦ ⟦
φ ↦ ξ.output-block.write(ξ.buffer).self,
output-block ↦ ⟦
self ↦ ξ,
φ ↦ Φ̇.true,
write(buffer) ↦ ⟦
φ ↦ Φ̇.seq(
Φ̇.tuple(
Φ̇.tuple(
Φ̇.tuple.empty,
Φ̇.sys.win32(
"WriteFile",
Φ̇.tuple(
Φ̇.tuple(
Φ̇.tuple(
Φ̇.tuple.empty, Φ̇.sys.win32.std-output-handle
),
ξ.buffer
),
ξ.buffer.size
)
).code
),
ξ.ρ.ρ.output-block
)
).self
⟧
⟧
⟧
⟧
⟧,
λ ⤍ Package
⟧,
λ ⤍ Package
⟧,
λ ⤍ Package
⟧
⟧}