kibibyte init

This commit is contained in:
2025-03-16 17:34:58 -04:00
parent 89b9320cc3
commit 0a1a863590
4 changed files with 80 additions and 11 deletions

8
.zed/settings.json Normal file
View File

@ -0,0 +1,8 @@
// Folder-specific settings
//
// For a full list of overridable settings, and general information on folder-specific settings,
// see the documentation: https://zed.dev/docs/configuring-zed#settings-files
{
"hard_tabs": true,
"tab_size": 4
}

View File

@ -1,23 +1,59 @@
import { ReadStatus } from "../enum"
import rfwfs, { type EntryCollection, type Entry } from "../main"
import rfwfs, { type EntryCollection, type Entry, RfwfsDirectory } from "../main"
import wrap, { wrap_none, WrapResult, WrapResultEntry, WrapResultNone } from "../wrap"
import fs from "./root"
const enum TraverseStatus {
Ok,
Denied,
TargetMissing,
NotFound,
}
let username: string = "user"
const libhome = {} as LibHome
interface WorkingDir<T extends Entry> {
entry?: EntryCollection<T>,
path: string[]
}
interface LibHome {
path: () => string[],
get: <T extends Entry>() => EntryCollection<T>,
}
function traverse_to_goal(path: string[]) {
if (working_dir.entry) {
function working_path_result(find: WrapResultEntry<EntryCollection<Entry>, ReadStatus>): WrapResult<TraverseStatus> {
// switch(find.some) {
// case ReadStatus.Ok: {
// return wrap(TraverseStatus.Ok, find.result)
// }
// case ReadStatus.NotFound: {
// }
// case ReadStatus.Denied: {
// }
// }
if (find.some === ReadStatus.Ok) {
if (find.result) {
return wrap(TraverseStatus.Ok)
} else {
}
} else if (find.some === ReadStatus.Denied) {
} else if (find.some === ReadStatus.NotFound) {
}
return wrap_none(TraverseStatus.NotFound)
}
function traverse_to_goal(working_path: string[]) {
let working_dir = fs.inner
for (const dir_name of working_path) {
const find = working_dir.find(dir_name)
const h = working_path_result(find)
}
}

View File

@ -5,13 +5,14 @@ import rfwfs from "../main"
const time_now = (Date.now()/1000)|0
// ------------ Home ------------
const config = rfwfs.directory(".config", Permissions.rw, time_now)
const local = rfwfs.directory(".local", Permissions.rw, time_now)
const downloads = rfwfs.directory("Downloads", Permissions.rw, time_now)
const pictures = rfwfs.directory("Pictures", Permissions.rw, time_now)
const desktop = rfwfs.directory("Desktop", Permissions.rw, time_now)
const videos = rfwfs.directory("Videos", Permissions.rw, time_now)
const music = rfwfs.directory("Music", Permissions.rw, time_now)
const
config = rfwfs.directory(".config", Permissions.rw, time_now),
local = rfwfs.directory(".local", Permissions.rw, time_now),
downloads = rfwfs.directory("Downloads", Permissions.rw, time_now),
pictures = rfwfs.directory("Pictures", Permissions.rw, time_now),
desktop = rfwfs.directory("Desktop", Permissions.rw, time_now),
videos = rfwfs.directory("Videos", Permissions.rw, time_now),
music = rfwfs.directory("Music", Permissions.rw, time_now);
const user = rfwfs.directory("user", Permissions.r, time_now, [
config,

24
src/rt/rfwfs/result.ts Normal file
View File

@ -0,0 +1,24 @@
const enum Status {
Ok,
Err
}
type OkResult<T> = [Status.Ok, T];
type ErrResult<T extends Error> = [Status.Err, T]
type Result<T, U extends Error> = OkResult<T> | ErrResult<U>;
const Ok = <T>(value: T) => [Status.Ok, value] satisfies OkResult<T>;
const Err = <T extends Error>(value: T) => [Status.Err, value] satisfies ErrResult<T>;
const execute = <T>(value: T): Result<T, Error> => {
return Math.random() > 0.5 ? Ok(value) : Err(new Error("boom"));
}
const result = execute("whatever");
if (result[0] === Status.Ok) {
const value = result[1]; // it have to be string
} else {
const value = result[1]; // it have to be error
}